Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
Unauthenticated, low-complexity network RPC on :9080 (AV:N/AC:L/PR:N/UI:N); Prepare() destroys and replaces data giving I:H/A:H, while no data is read so C:N.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
Dgraph is an open source distributed GraphQL database. Prior to version 25.3.5, Dgraph Alpha exposes the RPCs used for external snapshot import on the public gRPC port :9080 without authentication or authorization. As a result, an unauthenticated network client can open StreamExtSnapshot and send Badger stream data to the target group’s store. In addition, the receiver calls Prepare() before processing the stream. This operation deletes and replaces the existing DB data. Version 25.3.5 patches the issue.
AnalysisAI
Missing authentication in Dgraph Alpha lets an unauthenticated network client destroy and overwrite an entire database group's data via the external-snapshot import RPCs exposed on the public gRPC port :9080. Any attacker able to reach port 9080 can open a StreamExtSnapshot session; because the receiver calls Prepare() before ingesting the stream, the existing store is deleted and replaced with attacker-supplied Badger data. Fixed in version 25.3.5; no public exploit identified at time of analysis.
Technical ContextAI
Dgraph is an open-source distributed GraphQL/graph database in which 'Alpha' nodes hold and serve the sharded data. Nodes normally use gRPC on port :9080 both for client queries and for internal streaming operations, including external snapshot import which uses Badger (Dgraph's embedded LSM key-value store) stream data. The flaw is CWE-306 (Missing Authentication for a Critical Function): the StreamExtSnapshot RPC and the associated snapshot-import path are reachable on the public :9080 port with no authentication or authorization gate. Compounding the exposure, the receive path invokes Prepare() before processing the incoming stream, and Prepare() clears and replaces the existing on-disk store, converting an unauthenticated RPC into a full data-destruction primitive.
RemediationAI
Vendor-released patch: upgrade Dgraph to version 25.3.5 or later, which adds the missing authentication/authorization on the snapshot-import RPCs (release https://github.com/dgraph-io/dgraph/releases/tag/v25.3.5, advisory https://github.com/dgraph-io/dgraph/security/advisories/GHSA-rrwh-6jrq-wp5v). Until patching is possible, restrict network reachability of the Alpha gRPC port :9080 so it is accessible only to trusted application clients and cluster peers - bind it to internal interfaces, place it behind a firewall/security group, or use network policies in Kubernetes - accepting that overly aggressive filtering can break legitimate client connectivity and inter-node streaming if the same port is shared. Where supported, enable Dgraph's ACL/mTLS transport security on :9080 to authenticate clients; note this adds certificate/credential management overhead and must be rolled out to all legitimate clients to avoid outages. Ensure database backups are current and offline so that a destructive Prepare()/overwrite can be recovered.
Same technique Authentication Bypass
View allVendor StatusVendor
SUSE
Severity: CriticalShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42235
GHSA-rrwh-6jrq-wp5v