github.com/dgraph-io/dgraph/v24
high-performance graph database for real-time use cases
Activity
- Latest release
- 4mo ago
- Total releases
- 20
- Cadence
- ~11 days
- Last 12 months
- 4
Reach
- Stars
- 21.8k
Details
- First release
- Nov 16, 2024
| Version | Released | |
|---|---|---|
v24.1.9
patch
|
v24.1.9
patch
Dependencies (60)
+ 52 more |
|
v24.1.8
patch
3 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.8
patch
Dependencies (60)
+ 52 more |
|
v24.1.7
patch
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.7
patch
Dependencies (60)
+ 52 more |
|
v24.1.6
patch
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.6
patch
Dependencies (60)
+ 52 more |
|
v24.1.5
patch
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.5
patch
Dependencies (60)
+ 52 more |
|
v24.1.4
patch
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.4
patch
Dependencies (60)
+ 52 more |
|
v24.1.4-test1
pre
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.4-test1
pre
Dependencies (60)
+ 52 more |
|
v24.1.3
patch
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.3
patch
Dependencies (60)
+ 52 more |
|
v24.1.2
patch
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.2
patch
Dependencies (60)
+ 52 more |
|
v24.1.1
patch
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.1
patch
Dependencies (60)
+ 52 more |
|
v24.1.1-test2
pre
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.1-test2
pre
Dependencies (60)
+ 52 more |
|
v24.1.1-test1
pre
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.1-test1
pre
Dependencies (62)
+ 54 more |
|
v24.1.0
initial
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.0
initial
Dependencies (62)
+ 54 more |
|
v24.1.0-rc6
pre
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.0-rc6
pre
Dependencies (62)
+ 54 more |
|
v24.0.6-test1
pre
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.0.6-test1
pre
Dependencies (63)
+ 55 more |
|
v24.1.0-rc5
pre
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.0-rc5
pre
Dependencies (62)
+ 54 more |
|
v24.1.0-rc4
pre
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.1.0-rc4
pre
Dependencies (63)
+ 55 more |
|
v24.0.6-alpha3
pre
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.0.6-alpha3
pre
Dependencies (64)
+ 56 more |
|
v24.0.6-alpha2
pre
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.0.6-alpha2
pre
Dependencies (64)
+ 56 more |
|
v24.0.6-alpha1
pre
4 CVEs
CVE-2026-41492
GHSA-vvf7-6rmr-m29q
GO-2026-5675
Apr 24, 2026
Dgraph: Unauthenticated Admin Token Disclosure Leading to Authentication Bypass via /debug/vars
9.8
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
High
SummaryDgraph This is a variant of the previously fixed DetailsAlpha still exposes Go's default HTTP mux:
Alpha's HTTP handler explicitly blocks only the old CVE path:
Admin endpoints still trust the leaked token:
PoC
This was reproduced against Observed behavior:
It was verified that the old CVE path appears specifically patched in the same version:
ImpactUnauthenticated attackers can obtain the Alpha admin token and gain unauthorized administrative access. This enables privileged admin operations such as:
In deployments where the Alpha HTTP port is reachable by untrusted parties, this is a practical authentication bypass to admin functionality. References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41328
GHSA-x92x-px7w-4gx4
GO-2026-5749
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in NQuad Lang Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack requires two HTTP POSTs to port 8080. The first sets up a schema predicate with The injection exploits the POC clip: https://github.com/user-attachments/assets/bbfb7bba-c957-4b57-b534-48a958314186 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Two requests, deterministic outcome, no special conditions | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The mutation that carries the injection also writes data; the attacker can also set up arbitrary schema via unauthenticated /alter | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | ----- | --------------------------------------------------------------------------- | | Title | Pre-Auth DQL Injection via Unsanitized NQuad Lang Field in addQueryIfUnique | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| Lang split | 5. Test Environment| Component | Version / Details |
| -------------- | ------------------------------------------------------------------ |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The JSON chunker at
There is no escaping, no parameterization, no structural validation, and no character allowlist applied to An attacker crafts a JSON mutation key:
After
The constructed DQL becomes:
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker creates the required schema via unauthenticated
No Step 2. The attacker sends the injection payload:
Step 3. Step 4. Step 5. Step 6. Step 7. Step 8. Step 9. Step 10. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ------------------ | ------------------------------------------------------------ | | report.md | This vulnerability report | | poc.py | Exploit: sets up schema, seeds data, injects, prints leak | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthLangDQL.mp4 | Screen recording of the full attack from start to exfiltration | ZIP with all the relevant files: DGraphPreAuthDQLLang.zip poc.pyThe exploit performs three operations: (1) creates the Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Run the exploit
The PoC handles schema creation, data seeding, and exploitation automatically. Step 3: Manual reproductionTo reproduce manually without the PoC script:
What to verify
10. Mitigations and PatchLocation:
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-41327
GHSA-mrxx-39g5-ph77
GO-2026-5516
Apr 24, 2026
Dgraph: Pre-Auth Full Database Exfiltration via DQL Injection in Upsert Condition Field
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
1. Executive SummaryA vulnerability has been found in Dgraph that gives an unauthenticated attacker full read access to every piece of data in the database. This affects Dgraph's default configuration where ACL is not enabled. The attack is a single HTTP POST to There are no credentials involved. When ACL is disabled (the default), the POC clip: https://github.com/user-attachments/assets/edf43615-b0d5-46cd-abd9-2cb9423790d2 2. CVSS ScoreCVSS 3.1: 9.1 (Critical)
| Metric | Value | Rationale | | ------------------- | --------- | ---------------------------------------------------------------------------------- | | Attack Vector | Network | HTTP POST to port 8080 | | Attack Complexity | Low | Single request, no special conditions beyond default config | | Privileges Required | None | No authentication when ACL is disabled (default) | | User Interaction | None | Fully automated | | Scope | Unchanged | Stays within the Dgraph data layer | | Confidentiality | High | Full database exfiltration: all nodes, all predicates, all values | | Integrity | High | The injection can also be used to manipulate upsert conditions, bypassing uniqueness constraints and conditional mutation logic | | Availability | None | No denial of service | 3. Vulnerability Summary| Field | Value | | --------- | ------------------------------------------------------------------------------------------ | | Title | Pre-Auth DQL Injection via Unsanitized Cond Field in Upsert Mutations | | Type | Injection | | CWE | CWE-943 (Improper Neutralization of Special Elements in Data Query Logic) | | CVSS | 9.8 | 4. Target Information| Field | Value |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| Project | Dgraph |
| Repository | https://github.com/dgraph-io/dgraph |
| Tested version | v25.3.0 |
| HTTP handler | 5. Test Environment| Component | Version / Details |
| -------------------- | --------------------------------------------------------------- |
| Host OS | macOS (darwin 25.3.0) |
| Dgraph | v25.3.0 via 6. Vulnerability DetailLocation: The The handler at
There is no escaping, no parameterization, no structural validation, and no character allowlist between the HTTP input and the query string concatenation. An attacker crafts a
After
The DQL parser ( All three queries execute. The results of the injected
The 7. Full Chain ExplanationThe attacker has no Dgraph credentials and no prior access to the server. Step 1. The attacker sends one HTTP request:
No Step 2. Step 3. The request enters Step 4. Step 5. Step 6. Step 7. Step 8. The response is returned to the attacker at 8. Proof of ConceptFiles| File | Purpose | | ----------------------- | ---------------------------------------------------------- | | report.md | This vulnerability report | | poc.py | Exploit: sends the injection and prints leaked data | | docker-compose.yml | Spins up a Dgraph cluster (1 Zero + 1 Alpha, default config) | | DGraphPreAuthDQL.mp4 | Screen recording of the full attack from start to exfiltration | POC files zip: LEAD_001_DQL.zip poc.pyThe exploit sends a single POST to Tested Output
9. Steps to ReproducePrerequisites
Step 1: Start Dgraph
Wait for health:
Step 2: Seed test data
Step 3: Run the exploit
What to verify
10. Mitigations and PatchLocation: Instead of concatenating the raw References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-40173
GHSA-95mq-xwj4-r47p
GO-2026-5274
Apr 16, 2026
Dgraph: Unauthenticated /debug/pprof/cmdline discloses admin auth token, enabling unauthorized access to protected Alpha admin endpoints
9.4
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
Low
SummaryAn unauthenticated debug endpoint in Dgraph Alpha exposes the full process command line, including the configured admin token from 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 DetailsThe 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:
Credential-exposure chain:
Observed local evidence (safe validation):
Important policy/triage clarification:
PoC
Preconditions:
Reproduction steps:
Note: The PoC uses Impact
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 References Updated Sep 10, 2026 · Source: OSV.dev |
v24.0.6-alpha1
pre
Dependencies (64)
+ 56 more |