Dgraph: Zero Unauthenticated HTTP Admin removeNode Denial of Service
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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-102748
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 03:15 UTC · Revision 1
Source evidence
Dgraph: Zero Unauthenticated HTTP Admin removeNode Denial of Service
core-osv · Original sourcePublished 14 Oct 2026, 18:34 UTC
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.
osv:CVE-2026-102748
Complete source record
{
"id": "e8cfea6f788a142de42efc6897a3c36998452aef51efc5e3ee99c7a393dbbb70",
"url": "https://osv.dev/vulnerability/CVE-2026-102748",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Dgraph: Zero Unauthenticated HTTP Admin removeNode Denial of Service",
"summary": "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.",
"evidence": "osv:CVE-2026-102748",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2026-102748",
"aliases": [
"CVE-2026-102748",
"GHSA-qj98-gp63-54xj"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "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"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/dgraph-io/dgraph",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "a796c8420b5fda671e0a0f8cb76f474945e31c50"
},
{
"fixed": "c32f6041387fa631dbc057e265b71aec3384ead1"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "25.4.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "c32f6041387fa631dbc057e265b71aec3384ead1"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "a796c8420b5fda671e0a0f8cb76f474945e31c50"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v25.4.0"
}
]
}
}
],
"versions": [
"v25.3.8",
"v25.3.7",
"v25.3.6",
"v25.3.5",
"v25.3.4",
"v25.3.3",
"v25.3.2",
"v25.3.1",
"v25.3.0",
"v25.2.0",
"v25.1.0",
"v25.1.0-preview1",
"v25.0.0",
"v25.0.0-preview6",
"v25.0.0-preview5",
"v25.0.0-preview4",
"v25.0.0-preview3",
"v25.0.0-preview2",
"v25.0.0-preview1",
"v24.0.2",
"v24.0.2-rc1",
"v24.0.1",
"v24.0.0",
"v24.0.0-rc1",
"v23.1.0",
"v24.0.0-alpha3",
"v24.0.0-alpha2",
"v24.0.0-alpha",
"v23.1.0-rc1",
"v23.1.0-rc2",
"v23.0.1",
"v22.0.2",
"v23.0.0",
"v23.0.0-rc1",
"v23.0.0-beta1",
"v22.0.0",
"v22.0.0-RC1-20221003",
"v21.03.2",
"v21.03.1",
"v21.03.0",
"v20.11.0-rc1",
"release/v20.11-rc1",
"v1.0.8",
"v1.0.9",
"v2.0.0-rc1",
"v2.0.0-beta1",
"v1.2.0-rc1",
"v1.1.1",
"v1.1.1-rc2",
"v1.1.1-rc1",
"v1.1.0",
"v1.1.0-rc3",
"v1.1.0-rc2",
"v1.0.12-rc3",
"v1.0.12-rc2",
"v1.0.12-rc1",
"v1.0.11",
"v1.0.11-rc4",
"v1.0.11-rc3",
"v1.0.11-rc2",
"v1.0.10",
"v1.0.11-rc1",
"v1.0.10-rc1",
"v1.0.9-rc5",
"v1.0.9-rc4",
"v1.0.9-rc3",
"v1.0.9-rc2",
"v1.0.9-rc1",
"v1.0.8-rc2",
"v1.0.8-rc1",
"v1.0.7a",
"v1.0.7",
"v1.0.7-rc4",
"v1.0.7-rc3",
"v1.0.7-rc2",
"nightly",
"v1.0.5",
"v1.0.4",
"v1.0.3",
"v1.0.2",
"v1.0.1",
"v1.0.0",
"v0.9.4",
"v0.9.0",
"v0.8.3",
"v0.8.1",
"v0.8.0",
"v0.4.2",
"v0.4.1",
"v0.4.0",
"v0.3"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-102748.json"
}
}
],
"modified": "2026-10-28T02:30:32.940686273Z",
"provider": "osv",
"references": [
"https://github.com/dgraph-io/dgraph/releases/tag/v25.4.0",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/102xxx/CVE-2026-102748.json",
"https://github.com/dgraph-io/dgraph/security/advisories/GHSA-qj98-gp63-54xj",
"https://nvd.nist.gov/vuln/detail/CVE-2026-102748",
"https://github.com/dgraph-io/dgraph/commit/c32f6041387fa631dbc057e265b71aec3384ead1"
],
"provider_metadata": {
"cwe_ids": [
"CWE-306",
"CWE-862"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/102xxx/CVE-2026-102748.json"
}
},
"related_cves": [
{
"value": "CVE-2026-102748",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 499973,
"published_at": "2026-10-14T18:34:15.971+00:00"
}