Skip to main content

Dgraph CVE-2026-63637

| EUVDEUVD-2026-54255 HIGH
Improper Neutralization of Special Elements in Data Query Logic (CWE-943)
2026-08-06 security-advisories@github.com
8.6
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify exposed Dgraph GraphQL endpoint
  2. Delivery
    Enumerate type with regexp-filterable field
  3. Exploit
    Send crafted GraphQL query with malicious regexp filter value
  4. Execution
    maybeQuoteArg writes payload verbatim into DQL
  5. Persist
    Injected DQL operators bypass intended node filter
  6. Impact
    Exfiltrate all nodes of target type or expand mutation/deletion scope

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Query language parameterization
Exploitation Conditions

The Dgraph GraphQL API endpoint must be network-reachable by the attacker. The CVSS PR:N vector and the fix commit comment explicitly state that exploitation is possible without authentication when the endpoint is publicly accessible. The injection is triggered via a GraphQL regexp filter argument on any field annotated with a Dgraph search directive supporting regexp-based filtering (e.g., @search(by: ["trigram"])); no non-default server configuration is required. Exploitation for mutation or deletion impact additionally requires the attacker to issue mutation or deletion GraphQL operations against the endpoint. Limiting factors: (1) network inaccessibility - installations where the GraphQL port is firewalled or placed behind authenticated API gateway access are not directly exploitable by external attackers; (2) the attacker must enumerate a valid GraphQL type and field that exposes a regexp filter; (3) write-impact exploitation requires that mutations and deletions are permitted through the exposed API without further application-layer authorization controls.

Impact

The CVSS 8.6 High score with vector AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L is consistent with the technical evidence: the injection requires only a single crafted GraphQL request, no authentication, and no unusual configuration. The C:H rating is well-founded - an attacker can bypass intended predicate filters to retrieve all nodes of a queried type. The I:L and A:L ratings reflect that mutation and deletion operations can similarly expand beyond their intended targets. No EPSS data was provided, preventing quantitative probability comparison. The vulnerability is not listed in CISA KEV, so active exploitation is unconfirmed. The fix commit includes a working regression test payload (/x/) OR has(Country.name), which effectively constitutes a functional proof of concept embedded in the public repository - this lowers the bar for exploitation significantly even in the absence of a dedicated standalone PoC. The primary real-world risk limiter is deployment exposure: Dgraph installations where the GraphQL API port is not publicly reachable or is protected by API gateway authentication have substantially reduced exposure. For publicly exposed Dgraph GraphQL endpoints, this is a genuine high-priority issue requiring immediate patching.

Exploit ScenarioDerived

An unauthenticated attacker sends a GraphQL query to the Dgraph API with a crafted regexp filter argument such as { name: { regexp: "/x/) OR has(Country.name" } }. Because maybeQuoteArg writes this value verbatim into the generated DQL, the payload closes the intended regexp() call and appends OR has(Country.name), causing the query to match and return every node of the queried type rather than only the intended subset. A working test payload demonstrating this exact behavior is included in the public fix commit, confirming exploitation requires no special tooling beyond a standard HTTP client and knowledge of the target GraphQL schema.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 06, 2026

NoSQL injection in Dgraph prior to 25.3.8 enables unauthenticated remote attackers to inject DQL operators through unvalidated regexp filter arguments in GraphQL queries and mutations, bypassing intended node-level access controls. The maybeQuoteArg function in graphql/resolve/query_rewriter.go writes regexp arguments verbatim into generated DQL without validating the /pattern/flags structure, allowing a crafted filter value like /x/) OR has(pred to close the regexp call and append attacker-controlled DQL expressions. No confirmed active exploitation at time of analysis and no CISA KEV listing, but the fix commit includes a working injection payload as a regression test, confirming ease of exploitation against accessible endpoints.

RemediationAI

Upgrade to Dgraph 25.3.8 or later, the vendor-confirmed fixed version documented in GHSA-33p8-wc97-5qcj. The upstream fix commit is available at https://github.com/dgraph-io/dgraph/commit/aaff09ab9608f87d88e9d601e71d271306083392. For installations unable to upgrade immediately, restrict access to the Dgraph GraphQL API endpoint at the network layer using firewall rules, a reverse proxy, or API gateway authentication - this prevents unauthenticated exploitation but does not address the underlying injection flaw, meaning authenticated users with query access could still trigger it. If regexp filters are not required by the consuming application, consider rejecting or sanitizing incoming GraphQL requests containing regexp filter arguments at the API gateway layer using a WAF rule or request validation middleware, noting that this approach requires ongoing maintenance as the application evolves. No other workaround fully mitigates the injection without network-level access control.

Affected VersionsENISA

dgraph < 25.3.8

Affected Packages

euvd dgraph fix: 25.3.8

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Dgraph is a distributed graph database that exposes a GraphQL API and translates client queries into its internal query language, DQL (Dgraph Query Language). In graphql/resolve/query_rewriter.go, the maybeQuoteArg function controls how filter arguments are encoded before insertion into DQL strings. Regexp arguments receive special handling because they must appear as /pattern/flags literals in DQL rather than as quoted strings. Prior to 25.3.8, this function passed regexp filter arguments verbatim without verifying that the value conforms to a syntactically complete and self-contained /pattern/flags structure. CWE-943 (Improper Neutralization of Special Elements in Data Query Logic - NoSQL Injection) is the root cause class: the query-builder fails to neutralize user-supplied data before it is interpreted as DQL syntax. The fix introduces isValidRegexArg, which lexes the argument to confirm it contains exactly one complete regexp literal followed only by valid flag characters, mirroring dql.lexRegex to prevent any residual tokens from escaping into the broader DQL expression.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (github) PRIMARY 8.6 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L
vuln.today AI 8.6 HIGH

Network-reachable GraphQL endpoint with no authentication per vendor commit; C:H for full type-level node disclosure, I:L and A:L for partial expansion of mutation and deletion targets.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
Low
Availability
Low

Lifecycle Timeline

2
Patch available
Aug 06, 2026 - 23:03 EUVD
CVE Published
Aug 06, 2026 - 22:18 cve.org
HIGH 8.6

DescriptionCVE.org

Dgraph is an open source distributed GraphQL database. Prior to 25.3.8, maybeQuoteArg in graphql/resolve/query_rewriter.go passes regexp filter strings into generated DQL without quoting or validating the /pattern/flags form, allowing crafted GraphQL query or mutation filters to inject DQL operators, disclose unintended nodes, or expand modification and deletion targets. This issue is fixed in version 25.3.8.

Executive ViewAI

Why It Matters

Dgraph database platform (versions prior to 25.3.8) contains a critical vulnerability allowing unauthenticated attackers to inject malicious database queries through GraphQL API calls, with publicly available exploit code demonstrating ease of attack. Organizations with exposed Dgraph deployments face immediate risk of unauthorized data access, modification, or deletion.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; implement network segmentation restricting GraphQL endpoint access to authenticated internal systems, disable regexp filter functionality if unused, deploy WAF rules to block DQL injection syntax in GraphQL arguments, and enforce strict rate limiting on GraphQL queries.

Threat Intelligence Overview

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Low
specialized distributed graph database, niche enterprise footprint
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

43
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

NoSQL injection exploits databases that don't use traditional SQL syntax-like MongoDB, CouchDB, or Redis-by manipulating queries through unsanitized user input.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy