Severity by source
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/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
AC:H because the attacker must be able to inject/forge matching events into session history; PR:N since injection can arrive via untrusted content/components without prior auth; S:C and C/I/A:H reflect unauthorized tool execution crossing the authorization boundary.
Primary rating from Vendor (Google).
CVSS VectorVendor: Google
Lifecycle Timeline
4DescriptionCVE.org
A vulnerability in the Agent Development Kit (ADK) allows for continuation forgery in tool confirmations. An attacker who is able to manipulate or inject events into the session history can execute unauthorized tools by forging a tool confirmation response. This is possible because the framework did not verify if the target tool was registered to the executing agent, did not validate if the tool actually required confirmation, and did not match the confirmation arguments against the original tool call event in the history.
AnalysisAI
Authorization bypass in Google's Agent Development Kit (adk-python) lets an actor who can inject or manipulate events in an agent's session history forge a tool-confirmation response and force execution of tools that were never approved. The human-in-the-loop confirmation gate is defeated because the framework never verified that the confirmed tool was registered to the executing agent, that the tool actually required confirmation, or that the confirmation arguments matched the original tool-call event. No CISA KEV listing and no standalone public exploit were provided, though the CVSS 4.0 vector carries E:P (proof-of-concept exploit maturity); remediation is an upstream commit rather than a tagged release.
Technical ContextAI
Google ADK is an open-source Python framework (adk-python) for building LLM-driven agents that can call registered tools. Sensitive tools can be gated behind a 'tool confirmation' step: the agent emits a request_confirmation function call and waits for an approving response before executing. The flaw is in flows/llm_flows/request_confirmation.py, specifically the _resolve_confirmation_targets logic that maps an incoming confirmation back to the original function call. This maps to CWE-863 (Incorrect Authorization): the authorization check existed but trusted attacker-controllable data. The confirmation handler accepted an 'originalFunctionCall' supplied in the response without cross-checking it against the authentic call in history, so an injected/forged confirmation event was honored as genuine approval.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed - apply the change in commit c03f333769feaeaa9fe8910fbe95cb9f2d513f54 (https://github.com/google/adk-python/commit/c03f333769feaeaa9fe8910fbe95cb9f2d513f54) or upgrade to the first published adk-python release that contains it once available. The patch adds three validations in _resolve_confirmation_targets: the tool must be registered to the executing agent, the tool must actually require confirmation (statically or as requested in history), and the confirmation's name and arguments must match the original function-call event. Until you can update, compensating controls are: restrict who and what can write events into the session/session-history store (treat session history as a trust boundary), isolate agents so one agent's or tenant's events cannot be injected into another's session, and minimize or disable exposure of confirmation-gated high-impact tools to sessions that process untrusted input; note the trade-off that disabling confirmation-gated tools reduces agent capability and locking down session-history writes may break legitimate multi-agent event flows.
Same weakness CWE-863 – Incorrect Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-50437
GHSA-8qg5-x5vm-75jx