Reviewing Google's Agent Development Kit — the CI workflow that trusted the wrong identity
A path-traversal CVE, a Black Hat-disclosed unauthenticated dev assistant, and a GitHub Action that let anyone with issue-comment access trigger privileged code execution. Three separate ADK findings, one shared root cause.
Google's Agent Development Kit is the toolkit underneath a growing share of Google-ecosystem agent work — the same ADK referenced in SAP Joule's pro-code path and now documented under the Gemini Enterprise Agent Platform. It ships as a dual-track SDK (a 2.x line and a maintained 1.x line, with the Go port reaching 2.1.0 general availability on June 30, 2026) built around a familiar shape: Agents call Tools, Sessions hold conversation state and working memory, Callbacks hook into the execution lifecycle, and a Runner orchestrates all of it. Google's own documentation pushes an “Agent Gateway” as a central policy-enforcement point and publishes a “zero-trust AI agents” design guide — meaning Google has clearly thought about the trust-boundary problem in the abstract. Three separate 2026 findings show what happened where that thinking didn't reach the implementation.
ADK, briefly
For a review, the useful frame isn't “is ADK secure” — it's that ADK is a fast-moving SDK with a large surface (a developer-facing builder endpoint, a bundled dev assistant, its own CI/CD automation) and each of those surfaces has, independently, had a real disclosure against it in 2026. None of the three findings below required a novel attack technique.
Three findings, one shared root cause
Three findings, 2026 — different mechanisms, the same shape of mistake
| Finding | What it does | Missing boundary |
|---|---|---|
| CVE-2026-79707 — path traversal (CVSS 8.7) | ADK-for-Python's builder endpoint accepts a crafted file_path query parameter with no validation, letting an unauthenticated remote attacker read arbitrary files. Affects 1.9.0–1.21.0. | A developer-tooling endpoint trusted a file path parameter as if it could only ever point inside the project. |
| Unauthenticated dev-assistant HTTP API (Black Hat 2026, Check Point) | ADK ships a built-in development assistant reachable over a hidden HTTP API with no authentication by default — usable to write malicious Python and deploy it via adk deploy cloud_run, exfiltrating API keys and GCP service-account credentials. | A convenience tool meant for local development had no boundary distinguishing localhost-only intent from an actually-reachable network service. |
| GitHub Action privilege escalation (Pillar Security) | A public GitHub issue with prompt-injected text could get ADK's own lower-privileged triage bot to post a command that triggered a privileged code-fixing workflow with write access to issues, contents, and PRs — enabling code execution on CI runners and theft of bot tokens and GCP keys. | Authorization for a privileged workflow relied on the triggering bot's trusted identity, not on validating where the triggering content actually came from. |
Security researchers Yarden Porat and Shahar Tal, disclosing 11 vulnerabilities across LangChain, LangGraph, CrewAI, AutoGen, Microsoft Agent Framework, and ADK together at Black Hat 2026, put the underlying point directly: prompt-controlled content crossing into trusted framework logic is the actual defect class — not any single bug.
Notably, Google's first response to the unauthenticated dev-assistant finding was that it wasn't a bug. After the researchers pushed back, Google paid a bounty and issued a partial fix — worth knowing if a review is relying on “Google hasn't flagged this” as evidence something is safe by default.
CoreBreak — a fourth finding that skips the model entirely
This is part of a named cross-vendor pattern, “CoreBreak,” that also hit AWS Bedrock AgentCore (CVE-2026-18830) and the Vercel AI SDK (CVE-2026-64650/64651) — distinct from the Check Point-disclosed findings above, though both surfaced in the same general window. Redpanda's writeup on the pattern makes the review-relevant point directly: guardrails built to watch what a model says or does are irrelevant to an attack that never involves the model executing at all. A tool-confirmation mechanism has to validate the tool call itself, independent of whatever produced it.
The CI incident, in detail
The GitHub Action finding is worth walking through on its own, because the entry point required nothing more privileged than commenting on a public issue. ADK's own repository ran automation where a lower-privileged triage bot could, on seeing the right trigger text, post a command that kicked off a separately-privileged code-fixing workflow — one with write access to issues, repository contents, and pull requests. Prompt-injected text in a public issue was enough to get the triage bot to post that trigger, and the privileged workflow never checked where the triggering content had actually originated. Google confirmed a fix on July 21, 2026, and had deleted the three vulnerable workflow files by August 4.
The pattern generalizes past ADK's own repository: any CI/CD automation that lets a lower-trust actor (an issue commenter) indirectly trigger a higher-trust action (a privileged workflow) through an intermediate bot is the same shape of mistake, and it's worth checking for in any organization's own agent-adjacent automation, not just ADK's.
Agent Gateway and Callbacks — the mechanisms, precisely
Agent Gateway moves identity management, mTLS handshakes, policy enforcement, and payload auditing out of individual agent code and into shared network infrastructure, covering both Client-to-Agent (ingress) and Agent-to-Anywhere (egress, including agent-to-tool calls) traffic. It uses mTLS plus Demonstrating Proof-of-Possession (DPoP) for cryptographic identity verification and integrates with IAM and Model Armor for layered policy — a genuinely more specific architecture than “a policy-enforcement point” suggests, and one worth confirming is actually in the traffic path rather than bypassed.
ADK's Callbacks fire at defined points in the execution lifecycle — before_agent (authorization and maintenance checks), before_model/after_model (guardrails, request rewriting, PII stripping from responses), and before_tool/after_tool (argument validation, rate limiting, result logging). A callback can return an object to override or block an operation outright. Google's own guidance, citing OWASP's ranking of indirect prompt injection as the top LLM application risk, is to use before_tool/after_tool hooks specifically to sanitize inputs and validate tool responses before they re-enter model context — a specific, checkable recommendation, not a general security platitude.
Review checklist
For any system built on Google ADK, a design-time review should be able to answer:
- Is the ADK-for-Python package pinned past version 1.22.0, where CVE-2026-79707 was fixed?
- Is the bundled development assistant's HTTP API reachable from anywhere other than localhost in any deployed environment?
- Does any internal CI/CD automation let a lower-privileged bot or process trigger a higher-privileged workflow based on content from an untrusted source (an issue, a comment, a PR title)?
- Is the “Agent Gateway” pattern actually deployed as a policy-enforcement point, or is it a documented option the deployment never adopted?
- Is ADK for Python pinned past 2.5.0, closing the CoreBreak tool-confirmation forgery (CVE-2026-18236)?
- Do
before_tool/after_toolcallbacks actually sanitize inputs and validate responses, per Google's own indirect-prompt-injection guidance, or is that hook point unused?
See tool-use permission scoping for the general pattern behind the path-traversal and unauthenticated-endpoint issues that recur across most agent frameworks, not just this one.
Sources
- OffSeq Threat Radar — CVE-2026-79707
- The Register — “Prompt injection isn't the bug, AI agent frameworks are” (Black Hat 2026)
- The Hacker News — Google deletes 3 ADK AI workflows after disclosure
- Google — Agent Development Kit documentation
- Redpanda — CoreBreak proves agent guardrails need to live outside the agent
- Google Cloud Blog — Introducing Agent Gateway
Blog
Get new posts in your inbox
AI security review, OWASP Agentic Top 10, ISO 42001 evidence, and what AI Committees actually need. No cadence promises — we publish when there's something worth reading.
Review a Google ADK deployment before it ships
Builder-endpoint patching, dev-assistant reachability, and CI/CD trigger-trust boundaries — mapped to a disposition your AI Committee can act on.
A note on scope: Drel reviews assessed systems against documented architecture, configuration and intent. It does not ingest live telemetry from production environments. Dispositions reflect the assessed system at the time of review and the re-assessment triggers that govern when the disposition must be revisited.