3 Sources
[1]
Google dev kit spurs first-ever agent-on-agent violence
In what they call the first-ever real-world agent-to-agent exploitation method, Pillar Security researchers say they discovered an exploit in the repository behind Google's Agent Development Kit for Python that could allow attackers to compromise supply chains. In other words, now we know that one AI agent can be used to control and compromise another one that has more privileges. The security snafu existed in google/adk-python, an open source Python toolkit with more than 90 million downloads used to build and deploy AI agents. Google has since fixed the underlying issue in the repository but deemed the exploit non-rewardable because it involved social engineering. Even so, it illustrates the risks of using AI agents in CI/CD workflows for triage, pull request (PR) reviews, and discussions. It also shows how one AI agent could attack another in a production environment, according to Pillar's Dan Lisichkin, who found and reported the vulnerability. "Our world is changing quickly, and new attack surfaces are not yet reflected in threat models because these attacks never could exist in the first place in the 'pre-agent' world," Lisichkin said in a technical write-up published on Monday. He will also discuss the findings during a poster talk at DEF CON's AI Village on Friday, August 7 at 1600 PDT. "CISOs and security practitioners should start considering these scenarios, threat-modeling them, and calculating worst-case implications and blast radius," Lisichkin wrote. The issue stems from the way that the repo ran two classes of automated AI agents with different privilege levels that unintentionally share a trust boundary. One is a low-privilege, public-facing AI agent activated whenever a user opens a pull request (PR) or issue, and a second is a high-privilege, maintainer-only agent. Pillar's team found that the low-privilege, public-facing agent could be manipulated via prompt injection into triggering a maintainer-only agent that can execute malicious actions. "Because workflows that explain how these agents work behind the scenes are also public, any person could have connected the dots that one agent should be able - at least theoretically - to 'call' the other," Lisichkin told The Register. "When it comes to building the attack, you just need to know English to build the prompt injection (or just ask an AI to do it for you)." There is one caveat: an attacker would first likely need to make legitimate contributions to the repository to build trust among the maintainers before moving on to prompt injection. But assuming someone was willing to put in the time, here's how the attack would play out. First, an external user - this would be the attacker - creates a new PR. Lisichkin calls this PR A, and it combines a real fix with malicious code, such as a modified package.json or malicious dependency. Then, a public-facing agent tied to a high-privilege collaborator personal access token (PAT) reads the attacker's PR text and marks the PR for review. This level of trust - the collaborator PAT - allows the attacker-generated text to trigger a gated workflow. Once the PR A triage happens, the attacker opens a second PR - PR B - with the prompt injection, and the triage agent emits the trusted @gemini-cli handoff. This triggers the privileged-agent workflow and executes the malicious action. "Strung together, they manufacture a complete, believable 'a human asked for a review, gemini ran it, gemini approved' trail on the poisoned PR, none of which ever happened," Lisichkin wrote. Google did not respond to The Register's inquiries, but Lisichkin confirmed that the underlying issue was fixed. Still, his findings, Google said, "did not meet the bar" for a bug-bounty payout. "This report demonstrates exfiltration of a GitHub token with a 'pull-requests: write' permission, which enables tampering with a PR but still requires a maintainer to take an action to merge the malicious PR as PRs are not automatically merged after a bot review," Google explained. "We don't reward vulnerability reports that require social engineering to enable a supply chain security compromise," the rationale continued. "Nonetheless, we have taken an action to harden the repository so we will be recognizing this report with credit." Lisichkin told us the research shows agent isolation is not enough. "Agents should have their own identity, which mandates what resources they are allowed to access and in what they are allowed to interact with these resources," he said. "In this case, if Google had just given a bot identity to the initial triaging agent, most of the attack could have been prevented. Security teams need to start modeling agent identity and agent resource access within their threat models."®
[2]
Google ADK flaws reveal what happens when AI agents trust the wrong message
The flaws show how agentic workflows can turn trusted repository signals into privilege-escalation paths that conventional identity and CI/CD controls may not reveal. Security flaws in automated workflows in the GitHub repository for Google's Agent Development Kit for Python could allow public-facing AI agents to trigger more privileged automation, opening one path to manipulate pull-request reviews and another to expose credentials, according to a report from Pillar Security. The first attack path involved a triage agent that analyzed pull requests submitted by external contributors. The agent posted its responses through adk-bot, an account with collaborator access to the repository. Pillar found that malicious instructions embedded in a pull request could induce the agent to post an "@gemini-cli" command, triggering a workflow intended for trusted users. That workflow could enable command execution inside its CI runner. Its GitHub token could not push code, but it had write access to issues and pull requests. Pillar said those permissions could be used to alter a maintainer's comment, submit an approving review as github-actions[bot], and remove a legitimate review request, making a malicious pull request appear ready to merge.
[3]
Google Deletes 3 ADK AI Workflows After Malicious GitHub Issue Could Trigger Privileged Agent
Google deleted three AI agent workflows from its Agent Development Kit (ADK) Python repository. Pillar Security showed that a public GitHub issue could manipulate a triage agent into triggering a privileged code-fixing agent. The researchers said the public agent could be prompt-injected into posting as . They identified the bot as a collaborator, so that comment satisfied the privileged workflow's owner, member, or collaborator gate. The trusted bot identity became the authorization bridge. The team demonstrated arbitrary code execution on the continuous integration (CI) runner and exfiltration of the bot personal access token (PAT). The privileged job also held a Google API key and a Google Cloud service-account credential. Its researcher-controlled proof-of-concept attacks do not identify in-the-wild exploitation or a compromised ADK release. The exposed component was the repository automation, not a flaw in the distributed ADK Python package. For similar repositories, Pillar recommends separate bot identities, narrower token and tool scopes, and an authorization signal that untrusted text cannot generate. The Hacker News contacted Google about the bot token's scopes, service-account permissions, and exploitation evidence, and Pillar Security about the proof-of-concept environment and credential access. Both responses were pending at the time of writing. The attack path began in the public workflow, which ran automatically whenever an issue was opened. It authenticated with , supplied and to Google's Antigravity coding agent, and posted the generated analysis as a comment using the bot account. A separate workflow listened for comments and restricted execution to an owner, member, or collaborator. The gate checked who posted the command, not whether an outsider had manipulated the trusted account behind it. The privileged job declared write access to issues, repository contents, and pull requests. Those settings applied to GitHub's generated , not the PAT the job actually used. Pillar said the PAT's exact scopes were not public. The job checked out the repository with the PAT, authenticated to Google Cloud, and ran the agent with the PAT and API key in its environment. The workflow was designed to edit code, create an fork, push a branch, and open a pull request. A bot-generated pull request from June 4 shows that the automation was operating in the repository. The runner rejected shell metacharacters and allowed only commands whose first token was or . But the script enabled , which Google's Antigravity SDK documentation says turns on all tools, including writes. The agent could therefore write a payload and make an allowed Git command execute it through a custom hook path. Git's documentation confirms that hooks are executable programs and that can redirect Git to another directory. The allowlist narrowed command syntax, but file writes and Git still left a route to code execution. Public artifacts do not establish whether the PAT could push directly to the main branch. Pillar said Google told it the service account had Vertex AI access in a dedicated GitHub-management project; broader permissions were not disclosed. Pillar's report describes runner execution and credential exposure, but the public record does not establish the downstream repository or cloud reach of those credentials. The report also described an earlier chain that could create a false review trail through privileged Gemini workflows, but a maintainer still had to merge the pull request. Google's removal commit says the workflows processed untrusted issue and pull-request content with broad repository credentials. Google deleted , , and in a patch whose metadata carries a June 9, 2026 author date. Pillar said it verified the workflows were absent on July 2 and that Google confirmed the issue fixed on July 21. A check by The Hacker News on August 4, 2026, found none of the three filenames in the repository's current -branch workflow directory.
Share
Copy Link
Pillar Security researchers discovered a critical security flaw in Google's Agent Development Kit for Python that enabled the first documented agent-to-agent exploitation. The vulnerability allowed low-privilege AI agents to manipulate privileged agents through prompt injection, potentially compromising CI/CD workflows and exposing credentials. Google has since removed three vulnerable workflows.

Pillar Security researchers uncovered what they describe as the first-ever real-world agent-to-agent exploitation method in the repository behind Google's Agent Development Kit for Python
1
. The security flaw demonstrated how one AI agent could be weaponized to control and compromise another AI agent with elevated privileges, marking a watershed moment in understanding AI-driven automation risks. The vulnerable google/adk-python repository, an open source Python toolkit with more than 90 million downloads, is widely used to build and deploy AI agents across CI/CD environments1
.Dan Lisichkin from Pillar Security, who discovered and reported the vulnerability, emphasized the unprecedented nature of these agent-to-agent attacks. "Our world is changing quickly, and new attack surfaces are not yet reflected in threat models because these attacks never could exist in the first place in the 'pre-agent' world," Lisichkin stated in a technical write-up
1
. He plans to present the findings at DEF CON AI Village on Friday, August 7 at 1600 PDT1
.The core security flaw stemmed from how the repository ran two classes of automated AI agents with different privilege levels that unintentionally shared a trust boundary
1
. A low-privilege, public-facing triage AI agent activated whenever users opened pull-request reviews or issues, while a second high-privilege, maintainer-only agent operated with elevated permissions. The critical vulnerability allowed the public-facing agent to be manipulated via prompt injection into triggering the maintainer-only agent that could execute malicious actions1
.Pillar Security found that malicious instructions embedded in a malicious GitHub issue could induce the triage agent to post an "@gemini-cli" command through the adk-bot account, which held collaborator access to the repository
2
3
. This comment satisfied the privileged workflow's owner, member, or collaborator gate, effectively turning the trusted bot identity into an authorization bridge3
. The attack demonstrates how AI agents trust the wrong message when conventional identity controls fail to account for prompt injection vectors.The attack sequence required careful orchestration across multiple pull requests. An external attacker would first create PR A, combining legitimate code fixes with malicious code such as a modified package.json or malicious dependency
1
. The public-facing agent, tied to a high-privilege collaborator personal access token (PAT), would read the attacker's PR text and mark it for review, allowing the attacker-generated text to trigger a gated workflow1
.Once the PR triage occurred, the attacker would open a second PR containing the prompt injection payload. The triage agent would emit the trusted @gemini-cli handoff, triggering the privileged-agent workflow and executing the malicious action
1
. This privilege escalation path manufactured a complete, believable trail suggesting human review and Gemini approval of the poisoned PR, none of which actually happened1
.The privileged workflow enabled arbitrary code execution inside its CI runner
2
3
. While the GitHub token lacked direct code-push permissions, it held write access to issues and pull requests, which could be exploited to alter maintainer comments, submit approving reviews as github-actions[bot], and remove legitimate review requests2
.Pillar Security demonstrated that the privileged job exposed far more than repository access. The researchers achieved exfiltration of the bot personal access token (PAT), along with a Google API key and Google Cloud service-account credential
3
. The privileged workflow authenticated to Google Cloud and ran the agent with the PAT and API key in its environment3
. According to Pillar, Google confirmed the service account had Vertex AI access in a dedicated GitHub-management project, though broader permissions were not disclosed3
.The attack path exploited Git's hook mechanism to achieve code execution. While the runner rejected shell metacharacters and allowed only commands whose first token was specific Git commands, the script enabled unrestricted tool access, which Google's Antigravity SDK documentation confirms turns on all tools, including writes
3
. The agent could write a payload and make an allowed Git command execute it through a custom hook path3
. This illustrates how agentic workflows can turn trusted repository signals into supply chain compromise vectors that conventional CI/CD controls may not reveal.Related Stories
Google fixed the underlying issue but deemed the exploit non-rewardable because it involved social engineering
1
. The company explained that the report demonstrated exfiltration of a GitHub token with pull-requests write permission, which enables tampering with a PR but still requires a maintainer to merge the malicious PR, as PRs are not automatically merged after a bot review1
. "We don't reward vulnerability reports that require social engineering to enable a supply chain security compromise," Google stated, though the company did recognize the report with credit and hardened the repository1
.Google deleted three AI agent workflows from its Agent Development Kit Python repository in response to the findings
3
. The removal commit indicated the workflows processed untrusted issue and pull-request content with broad repository credentials3
. Pillar verified the workflows were absent on July 2, and Google confirmed the issue fixed on July 213
. The exposed component was the repository automation, not a flaw in the distributed ADK Python package itself3
.Lisichkin argues that agent isolation is insufficient to prevent these emerging threats. "Agents should have their own identity, which mandates what resources they are allowed to access and in what they are allowed to interact with these resources," he explained
1
. In this case, assigning a distinct bot identity to the initial triage agent could have prevented most of the attack1
.For similar repositories, Pillar Security recommends implementing separate bot identities, narrower token and tool scopes, and authorization signals that untrusted text cannot generate
3
. The research underscores that security teams must begin modeling agent identity and agent resource access within their threat models1
. "CISOs and security practitioners should start considering these scenarios, threat-modeling them, and calculating worst-case implications and blast radius," Lisichkin urged1
.The attack required minimal technical sophistication. "When it comes to building the attack, you just need to know English to build the prompt injection (or just ask an AI to do it for you)," Lisichkin noted
1
. While an attacker would likely need to make legitimate contributions first to build trust among maintainers, the low barrier to exploitation highlights the urgency of addressing these vulnerabilities as organizations increasingly deploy privileged AI agents in production environments.Summarized by
Navi
[1]
15 Apr 2026•Technology

08 Jul 2026•Technology

07 Jul 2026•Technology

1
Technology

2
Technology

3
Technology
