A Google removeu três fluxos de trabalho de agentes de inteligência artificial (IA) do seu repositório Python do Agent Development Kit (ADK, Kit de Desenvolvimento de Agentes). A Pillar Security demonstrou que uma issue pública no GitHub poderia manipular um agente de triagem a fim de acionar um agente privilegiado de correção de código.
Os pesquisadores afirmaram que o agente público poderia receber um ataque de injeção de prompt para publicar o comando /adk-issue-fix como adk-bot. Como identificaram o bot como colaborador, esse comentário satisfazia a verificação de proprietário, membro ou colaborador do fluxo de trabalho privilegiado. A identidade confiável do bot se tornou a ponte de autorização.
A equipe demonstrou a execução arbitrária de código no executor de integração contínua (CI) e a exfiltração do token de acesso pessoal (PAT, na sigla em inglês) do bot. O trabalho privilegiado também detinha uma chave de API (Interface de Programação de Aplicações) do Google e uma credencial de conta de serviço do Google Cloud. Os ataques de prova de conceito controlados pelos pesquisadores não identificam exploração em ambiente real nem uma versão comprometida do ADK.
O componente exposto foi a automação do repositório, e não uma falha no pacote ADK Python distribuído. Para repositórios semelhantes, a Pillar recomenda identidades de bot separadas, escopos de token e de ferramenta mais restritos e um sinal de autorização que texto não confiável não consiga gerar.
O The Hacker News contatou a Google sobre os escopos do token do bot, as permissões da conta de serviço e as evidências de exploração, e a Pillar Security sobre o ambiente de prova de conceito e o acesso a credenciais. Ambas as respostas estavam pendentes no momento da redação.
Cadeia do ataque
O caminho do ataque começou no fluxo de trabalho público issue-analyze.yml, executado automaticamente sempre que uma issue era aberta. Ele se autenticava com a variável de ambiente ADK_GCP_SA_KEY, fornecia ADK_TRIAGE_AGENT e GOOGLE_API_KEY ao agente de codificação Antigravity do Google e publicava a análise gerada como comentário usando a conta do bot.
Um fluxo de trabalho separado, issue-fix.yml, escutava comentários com /adk-issue-fix e restringia a execução a proprietário, membro ou colaborador. A verificação analisava quem publicou o comando, e não se um estranho havia manipulado a conta confiável por trás dele.
O trabalho privilegiado declarava acesso de escrita a issues, conteúdo do repositório e pull requests. Essas configurações se aplicavam ao GITHUB_TOKEN gerado pelo GitHub, e não ao PAT do ADK_TRIAGE_AGENT que o trabalho realmente utilizava.
A Pillar afirmou que os escopos exatos do PAT não eram públicos. O trabalho realizava o checkout do repositório com o PAT, se autenticava no Google Cloud e executava o agente com o PAT e a chave de API em seu ambiente. O fluxo de trabalho foi projetado para editar código, criar um fork do adk-bot, enviar uma branch e abrir um pull request. Um pull request gerado pelo bot em 4 de junho mostra que a automação estava em operação no repositório.
Execução de código e hooks do Git
O executor rejeitava metacaracteres de shell e permitia apenas comandos cujo primeiro token fosse gh ou git. Contudo, o script habilitava a função CapabilitiesConfig(), que, segundo a documentação do Kit de Desenvolvimento de Software (SDK) do Antigravity do Google, ativa todas as ferramentas, incluindo escritas. O agente poderia, portanto, gravar um payload e fazer um comando Git permitido executá-lo por meio de um caminho de hook personalizado.
A documentação do Git confirma que hooks são programas executáveis e que a configuração core.hooksPath pode redirecionar o Git para outro diretório. A lista de permissões restringia a sintaxe dos comandos, mas escritas de arquivos e o próprio Git ainda deixavam um caminho para execução de código.
Alcance das credenciais
Artefatos públicos não estabelecem se o PAT poderia enviar diretamente para a branch principal. A Pillar disse que a Google informou que a conta de serviço tinha acesso ao Vertex AI em um projeto dedicado de gestão do GitHub; permissões mais amplas não foram divulgadas. O relatório da Pillar descreve a execução no executor e a exposição de credenciais, mas o registro público não estabelece o alcance downstream no repositório ou na nuvem dessas credenciais.
O relatório também descreveu uma cadeia anterior que poderia criar um rastro falso de revisão por meio de fluxos de trabalho privilegiados do Gemini, mas um mantenedor ainda precisava mesclar o pull request.
Remoção pela Google
O commit de remoção da Google afirma que os fluxos de trabalho processavam conteúdo não confiável de issues e pull requests com credenciais amplas do repositório. A Google excluiu issue-analyze.yml, issue-fix.yml e pr-analyze.yml em um patch cujos metadados trazem a data de autoria de 9 de junho de 2026.
A Pillar afirmou ter verificado a ausência dos fluxos de trabalho em 2 de julho e que a Google confirmou a correção do problema em 21 de julho. Uma verificação do The Hacker News em 4 de agosto de 2026 não encontrou nenhum dos três nomes de arquivo no diretório de fluxos de trabalho da branch principal atual do repositório.