Skip to main content
VulnerabilityPublished Updated

CVE-2026-41492: Dgraph · Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars

Affects github.com/dgraph-io/dgraph/v25Source GCVE Database

0
Authoritative record:CVE-2026-41492· Critical 9.8

Not known to be exploited · public detection template (Nuclei) · CVSS 9.8 Critical : upgrade to 25.3.3 as a priority.

Data as of 27 Oct 2026, 00:07 UTC

CVSS 3.1 base score
9.8Critical
How severe the flaw is on the 0–10 CVSS scale.
Patch
Available – fixed in 25.3.3
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 24 Apr 2026

  2. Weaponised: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  3. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  4. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.

What to do

Upgrade github.com/dgraph-io/dgraph/v25 to 25.3.3.

Affected software

ProductAffectedFixed in
Gogithub.com/dgraph-io/dgraph/v25Affected
  • <25.3.3
Fixed in
  • 25.3.3
Gogithub.com/dgraph-io/dgraph/v24Affected
  • <=24.1.8
Fixed in–
Gogithub.com/dgraph-io/dgraphAffected
  • <=1.2.8
Fixed in–

Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.

Description

### Summary Dgraph `v25.3.2` still exposes the process command line through the unauthenticated `/debug/vars` endpoint on Alpha. Because the admin token is commonly supplied via the `--security "token=..."` startup flag, an unauthenticated attacker can retrieve that token and replay it in the `X-Dgraph-AuthToken` header to access admin-only endpoints. This is a variant of the previously fixed `/debug/pprof/cmdline` issue, but the current fix is incomplete because it blocks only `/debug/pprof/cmdline` and still serves `http.DefaultServeMux`, which includes `expvar`'s `/debug/vars` handler. ### Details Alpha still exposes Go's default HTTP mux: - `x/metrics.go` - imports `expvar` - initializes `Conf = expvar.NewMap("dgraph_config")` - Go's `expvar` package automatically registers `/debug/vars` - `expvar` publishes: - `cmdline = os.Args` - `memstats = runtime.Memstats` Alpha's HTTP handler explicitly blocks only the old CVE path: - `dgraph/cmd/alpha/run.go` - checks `if r.URL.Path == "/debug/pprof/cmdline"` and returns `404` - otherwise falls through to `http.DefaultServeMux.ServeHTTP(w, r)` Admin endpoints still trust the leaked token: - `dgraph/cmd/alpha/admin.go` - reads `X-Dgraph-AuthToken` - compares it to `worker.Config.AuthToken` ### PoC 1. Send an unauthenticated request to Alpha: ```http GET /debug/vars HTTP/1.1 Host: target:8080 ``` 2. Parse the JSON response and read the `cmdline` field. 3. Extract the admin token from the startup arguments, for example: ```text --security token=debug-vars-secret; ``` 4. Replay the token to an admin-only endpoint: ```http GET /admin/config/cache_mb HTTP/1.1 Host: target:8080 X-Dgraph-AuthToken: debug-vars-secret ``` 5. The request is accepted as an authorized admin request. This was reproduced against `dgraph/dgraph:v25.3.2` in Docker. Observed behavior: - unauthenticated `/debug/vars` leaked the configured token - replaying the leaked token in `X-Dgraph-AuthToken` successfully accessed `/admin/config/cache_mb` - response body was: ```text 4096 ``` It was verified that the old CVE path appears specifically patched in the same version: - `/debug/pprof/cmdline` returned `404 Not Found` - `/debug/pprof/` remained reachable ### Impact Unauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as: - reading privileged admin configuration - mutating admin configuration - performing operational control actions gated by `X-Dgraph-AuthToken` In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality.

References

Community reviews

Loading reviews…