Impact
This vulnerability allows an unauthenticated attacker to read the entire contents of a Dgraph database when the default configuration (no ACL) is in use. By sending two unauthenticated HTTP POST requests to port 8080—first to /alter to add a specially crafted schema predicate and second to /mutate?commitNow=true with a JSON key that contains the predicate name followed by an @ symbol and a malicious DQL payload—the attacker can inject arbitrary DQL commands. The injected query is executed on the server and its result set is returned in the HTTP response, effectively granting full data exfiltration. The weakness is a form of JSON injection, identified as CWE‑943.
Affected Systems
Vendors and products affected are Dgraph‑IO’s Dgraph database, specifically any deployment running a version prior to 25.3.3. The vulnerability is tied to the default configuration where access control lists are disabled, so any instance exposed on port 8080 without authentication is susceptible.
Risk and Exploitability
The CVSS score of 9.1 indicates a high severity due to complete data compromise. Although the EPSS score is less than 1 %—suggesting a low current exploitation probability—the vulnerability is publicly known and the attack does not require privileged access, only the ability to reach the unauthenticated API endpoints. The solution is not yet in CISA’s KEV catalog. If a Dgraph instance is publicly reachable and ACL is not enabled, this weakness can be exploited with minimal effort. Enabling authentication or applying the patch dramatically reduces risk.
OpenCVE Enrichment
Github GHSA