GHSA-qp7j-x725-g67f

Suggest an improvement
Source
https://github.com/advisories/GHSA-qp7j-x725-g67f
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/08/GHSA-qp7j-x725-g67f/GHSA-qp7j-x725-g67f.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-qp7j-x725-g67f
Published
2025-08-19T15:34:48Z
Modified
2025-08-19T15:34:49Z
Severity
  • 10.0 (Critical) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H CVSS Calculator
Summary
HydrAIDE Authentication Bypass Vulnerability
Details

Summary

There is no authentication of any kind.

Details

TLS is implemented, the tunnel between the client and server is secure, however once data is on the server, it's free to be read by any adversaries.

On the client side : https://github.com/hydraide/hydraide/blob/main/sdk/go/hydraidego/client/client.go#L221 It should be using a TLS Config with RootCAs and Certificates, currently RootCAs only (under NewClientTLSFromFile)

And on the server side, there should be ClientCAs and ClientAuth filled.

PoC

To bypass as is, the simplest way is to take the client and modify the code as such :

Modified from https://github.com/hydraide/hydraide/blob/main/sdk/go/hydraidego/client/client.go#L209

            // hostOnly := strings.Split(server.Host, ":")[0]
            // creds, certErr := credentials.NewClientTLSFromFile(server.CertFilePath, hostOnly)
            // if certErr != nil {
            //  slog.Error("error while loading TLS credentials: ", "error", certErr, "server", server.Host, "fromIsland", server.FromIsland, "toIsland", server.ToIsland)
            //  errorMessages = append(errorMessages, certErr)
            // }
            var opts []grpc.DialOption
            tlsConfig := &tls.Config{
                InsecureSkipVerify: true,
            }
            creds := credentials.NewTLS(tlsConfig)
            opts = append(opts, grpc.WithTransportCredentials(creds))

Impact

It impacts everyone who think there is any kind of authentication.


Resolution

This vulnerability has been fully fixed in server/v2.2.1 together with hydraidectl/v0.2.1.

All users are strongly advised to upgrade:

  1. Update to hydraidectl v0.2.1
  2. Re-initialize server instances with hydraidectl init into a new folder. This generates the required certificate files, downloads the latest binaries, and sets up the necessary environment variables.

For migration help, join the community Discord: https://discord.gg/xE2YSkzFRm or open a GitHub Discussion. If anything does not work, please report it.

Database specific
{
    "nvd_published_at": null,
    "severity": "CRITICAL",
    "cwe_ids": [
        "CWE-290"
    ],
    "github_reviewed_at": "2025-08-19T15:34:48Z",
    "github_reviewed": true
}
References

Affected packages

Go / github.com/hydraide/hydraide

Package

Name
github.com/hydraide/hydraide
View open source insights on deps.dev
Purl
pkg:golang/github.com/hydraide/hydraide

Affected ranges

Type
SEMVER
Events
Introduced
2.1.1
Fixed
2.2.1

Go / github.com/hydraide/hydraide

Package

Name
github.com/hydraide/hydraide
View open source insights on deps.dev
Purl
pkg:golang/github.com/hydraide/hydraide

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
0.0.0-20250816184905-1256db38c33c