Skip to main content

Dgraph Zero CVE-2026-102748

| EUVDEUVD-2026-101603 CRITICAL
Missing Authentication for Critical Function (CWE-306)
2026-10-14 security-advisories@github.com GHSA-qj98-gp63-54xj
9.2
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Reach Zero admin HTTP port 6080
  2. Exploit
    Send crafted id/group to /removeNode
  3. Execution
    Trigger ProposePeerRemoval, evict members
  4. Impact
    Destabilize dependent Alpha nodes

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires (1) the Zero administrative interface to be enabled and (2) network reachability to Zero's admin HTTP port (default 6080) from the attacker. No authentication is required (PR:N confirmed) and no user interaction is needed; the affected routes (/state, /assign, /moveTablet, /removeNode) are served without any token or IP check in versions prior to 25.4.0. The /removeNode destructive path specifically operates on attacker-controlled id and group values, with group 0 triggering ProposePeerRemoval. The primary LIMITING factor is network exposure: Zero's HTTP/gRPC surface is designed to sit on a trusted network, so exploitation is realistic only where port 6080 is exposed to untrusted networks; after the fix, destructive endpoints are loopback-only unless a --security token or whitelist is configured.

Impact

The vendor CVSS 4.0 base score of 9.2 is driven by a fully remote, unauthenticated, low-complexity vector (AV:N/AC:L/AT:N/PR:N/UI:N) with high integrity and availability impact on the vulnerable system and high availability impact on subsequent systems (VI:H/VA:H/SA:H) - the SA:H correctly captures that compromising Zero cascades to destabilize dependent Alpha nodes. CWE-306 (Missing Authentication for a Critical Function) is confirmed by both the description and the fix commit, which adds a token/IP-whitelist guard. However, several real-world-risk signals are MISSING from the input: there is no EPSS score, no CISA KEV entry, and no flagged public exploit, so exploitation probability cannot be quantified from the data provided - classify as no public exploit identified at time of analysis. The single most important mitigating factor, explicit in the fix's own comments, is that port 6080 was never intended to be internet-exposed and network isolation is the primary control for Zero's admin/gRPC surface; the fix even keeps /state and /assign open by default and only hard-guards the destructive /removeNode and /moveTablet routes (loopback-only unless a token/whitelist is set). Net: this is a genuine high-severity flaw for any deployment that exposes the Zero HTTP port beyond a trusted network, but real-world risk is sharply gated by whether port 6080 is reachable by the attacker - a property not knowable from the CVE data alone. Note one nuance: the description says /state can read cluster topology, a confidentiality effect the vendor vector scores as VC:N; this analysis treats it as a low confidentiality impact.

Exploit ScenarioDerived

An attacker who can reach Dgraph Zero's administrative HTTP port (default 6080) - e.g. a Zero instance inadvertently exposed to the internet or reachable from a compromised internal host - sends an unauthenticated request to /removeNode with chosen id and group values. With group 0, this reaches Server.RemoveNode and ProposePeerRemoval, evicting cluster members and disrupting the Zero control plane so that dependent Alpha nodes become unstable. The advisory demonstrates the membership-removal path, but no public weaponized exploit code is indicated in the provided data.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.5% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 14, 2026

Unauthenticated remote attackers who can reach Dgraph Zero's administrative HTTP port (default 6080) can read cluster topology via /state, allocate identifiers via /assign, invoke the exposed /moveTablet route, or remove cluster members via /removeNode in any Dgraph deployment prior to 25.4.0, destabilizing the Zero control plane and the Alpha nodes that depend on it. The /removeNode path accepts attacker-controlled id and group values and, when group 0 is supplied, reaches Server.RemoveNode and ProposePeerRemoval, giving a caller with only network access the ability to alter cluster membership. No public exploit identified at time of analysis, but the vendor CVSS 4.0 score of 9.2 reflects a fully remote, unauthenticated, low-complexity vector (PR:N confirmed) with high integrity and availability impact, cascading to dependent Alpha nodes; the practical limiting factor is network exposure of port 6080, which is intended to sit on a trusted network.

RemediationAI

Upgrade to Dgraph v25.4.0 (vendor-released patch: 25.4.0), which adds an authorization middleware in dgraph/cmd/zero/admin.go that gates the destructive /removeNode and /moveTablet routes unconditionally and applies opt-in authentication to /state and /assign once a token or whitelist is set. Because there is no patch for older branches, the most effective compensating control for unpatched deployments is strict network isolation of Zero's administrative HTTP port (default 6080) and its gRPC surface: restrict inbound access with firewall or security-group rules so only trusted cluster-management hosts and monitoring systems can reach it, accepting that any host with access to that network segment retains full control-plane authority. On patched versions, operators who need remote admin access must explicitly configure --security "whitelist=<CIDRs>;token=<value>" on Zero; be aware of the side effects - enabling a whitelist will block remote dashboards and monitoring tooling that currently poll /state from unlisted hosts (and any legacy clients) until their source IPs are added, while enabling the token requires every admin client to send the X-Dgraph-AuthToken header, so plan a staged rollout to avoid breaking existing automation. Note also that the fix admits loopback requests without credentials, so co-located processes on the Zero host still have unauthenticated access to the destructive routes; treat host-level access to the Zero container or pod as equivalent to cluster-admin. If neither patching nor segmentation is immediately possible, disabling the Zero administrative interface (not binding/enabling the admin HTTP listener) removes the attack surface entirely at the cost of losing /state monitoring and administrative CLI operations that rely on it.

Affected VersionsENISA

dgraph < 25.4.0

Affected Packages

go github.com/dgraph-io/dgraph/v25 fix: 25.4.0
euvd dgraph fix: 25.4.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

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

Technical ContextAI · show details

Dgraph Zero is the cluster manager and control plane of the Dgraph distributed GraphQL database: it assigns UIDs and timestamps, tracks tablet placement across Alpha data nodes, and coordinates membership, while Alpha nodes serve queries and writes and depend on Zero for cluster state. Prior to 25.4.0, Zero registered administrative HTTP handlers on its HTTP port (default 6080) with no authentication whatsoever, which is a textbook CWE-306 (Missing Authentication for Critical Function) - the root cause is not a parsing or memory-safety bug but the complete absence of an authorization gate on routes that perform privileged control-plane operations. The affected routes fall into two classes: informational/allocation endpoints (/state, /assign) that leak topology and hand out identifiers, and destructive control-plane endpoints (/moveTablet, /removeNode) that mutate cluster membership and tablet placement. The fix (commit c32f6041..., GHSA-qj98-gp63-54xj) introduces dgraph/cmd/zero/admin.go with an adminAuthHandler middleware that guards destructive routes in a strict mode (admitting only loopback unless an operator sets a --security token or IP whitelist) and applies opt-in enforcement to /state and /assign once a security token or whitelist is configured; authentication uses a constant-time comparison (crypto/subtle) of the X-Dgraph-AuthToken header and a source-IP whitelist check, with the same commit refactoring IP-range parsing into the shared x.GetIPsFromString helper and adding CORS headers to the admin responses.

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 9.2 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:H
vuln.today AI 10.0 CRITICAL

Remote unauthenticated HTTP access with no UI (AV:N/AC:L/PR:N/UI:N); S:C because compromising Zero cascades to dependent Alpha nodes; C:L for /state topology read, I:H/A:H for membership removal and control-plane disruption.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
High

Lifecycle Timeline

2
Patch available
Oct 14, 2026 - 20:34 EUVD
CVE Published
Oct 14, 2026 - 19:17 cve.org
CRITICAL 9.2

DescriptionCVE.org

Dgraph is an open source distributed GraphQL database. Prior to 25.4.0, Dgraph Zero registers administrative HTTP routes on port 6080 without authentication when the administrative interface is enabled. The /removeNode route accepts attacker-controlled id and group values and passes them to Server.RemoveNode, where group 0 can trigger ProposePeerRemoval. A remote unauthenticated attacker who can reach the Zero HTTP port can read topology through /state, allocate identifiers through /assign, access the exposed /moveTablet administrative route, or remove membership through /removeNode, disrupting the Zero control plane and destabilizing Alpha nodes that depend on Zero. The route registration occurs in dgraph/cmd/zero/run.go, and the demonstrated membership-removal path reaches Server.RemoveNode and ProposePeerRemoval. This issue is fixed in version 25.4.0.

Technical POC Analysis

CWE-306: Missing Authentication for Critical Function.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Dgraph deployments prior to version 25.4.0 are exposed to a critical unauthenticated remote vulnerability in the Dgraph Zero control plane, enabling attackers with network access to alter cluster membership, read topology, and disrupt dependent Alpha nodes. This creates a severe risk of service outages and data integrity compromise for organizations relying on Dgraph for critical applications. Leadership should prioritize immediate network containment measures, as no vendor patch is currently available.

Business Impact: Severe
Compensating Controls

Restrict network access to Dgraph Zero's administrative HTTP port (default 6080) to trusted networks/hosts only via firewall rules or network segmentation; monitor for unauthorized access attempts to /state, /assign, /moveTablet, and /removeNode; consider implementing additional authentication or reverse proxy controls if the administrative interface must be exposed.

Threat Intelligence Overview

EPSS Score
0.5%
Top 60% exploitable
Prevalence
Medium
well-known open-source graph database, common but not ubiquitous in production
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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