O Google removeu três fluxos de trabalho de agentes de IA de seu repositório Python do Agent Development Kit (ADK).
A Pillar Security demonstrou que uma issue pública no GitHub poderia manipular um agente de triagem para acionar um agente privilegiado de correção de código.
Segundo os pesquisadores, o agente público poderia ser alvo de prompt injection para publicar “/adk-issue-fix” como “adk-bot”.
Eles o identificaram como colaborador, o que fez com que o comentário passasse pela barreira de proprietário, membro ou colaborador do fluxo privilegiado.
A identidade confiável do bot se tornou a ponte de autorização.
A equipe demonstrou 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) do bot.
O job privilegiado também continha uma chave de API do Google e uma credencial de conta de serviço do Google Cloud.
Os ataques de prova de conceito conduzidos pelos pesquisadores não indicam exploração em ambiente real nem uma versão do ADK comprometida.
O componente exposto era a automação do repositório, e não uma falha no pacote Python do ADK distribuído.
Para repositórios semelhantes, a Pillar recomenda identidades separadas para bots, escopos mais restritos para tokens e ferramentas e um sinal de autorização que texto não confiável não consiga gerar.
O Google foi contatado para comentar os escopos do token do bot, as permissões da conta de serviço e evidências de exploração, além da Pillar Security sobre o ambiente da prova de conceito e o acesso a credenciais.
Até o momento da publicação, ambas as respostas estavam pendentes.
A cadeia de ataque começou no workflow público issue-analyze.yml, que era executado automaticamente sempre que uma issue era aberta.
Ele se autenticava com ADK_GCP_SA_KEY, fornecia ADK_TRIAGE_AGENT e GOOGLE_API_KEY ao agente de programação Antigravity do Google e publicava a análise gerada como comentário usando a conta do bot.
Um segundo workflow, issue-fix.yml, respondia a comentários com “/adk-issue-fix” e limitava a execução a proprietário, membro ou colaborador.
A verificação analisava quem publicou o comando, e não se um invasor havia manipulado a conta confiável por trás dele.
O job privilegiado declarava acesso de gravação 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 job realmente utilizava.
A Pillar informou que os escopos exatos do PAT não eram públicos.
O job fazia o checkout do repositório com o PAT, autenticava no Google Cloud e executava o agente com o PAT e a chave de API em seu ambiente.
O fluxo 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.
O executor bloqueava metacaracteres do shell e permitia apenas comandos cujo primeiro token fosse gh ou git.
Mas o script ativava CapabilitiesConfig(), que, segundo a documentação do SDK Antigravity do Google, habilita todas as ferramentas, inclusive as de gravação.
Assim, o agente podia escrever um payload e fazer com que um comando Git permitido o executasse por meio de um caminho de hook personalizado.
A documentação do Git confirma que hooks são programas executáveis e que core.hooksPath pode redirecionar o Git para outro diretório.
A lista de permissões reduziu a sintaxe dos comandos, mas gravações em arquivos e o próprio Git ainda deixavam um caminho para execução de código.
Os artefatos públicos não mostram se o PAT poderia fazer push diretamente para a branch principal.
A Pillar disse que o Google informou que a conta de serviço tinha acesso ao Vertex AI em um projeto separado de gerenciamento do GitHub; permissões mais amplas não foram divulgadas.
O relatório da Pillar descreve execução no executor e exposição de credenciais, mas o registro público não comprova o alcance posterior dessas credenciais no repositório ou na nuvem.
O relatório também descreveu uma cadeia anterior que poderia criar um falso histórico de revisão por meio de fluxos privilegiados do Gemini, mas ainda seria necessário que um mantenedor fizesse o merge do pull request.
O commit de remoção do Google afirma que os workflows processavam conteúdo não confiável de issues e pull requests com credenciais amplas do repositório.
O Google removeu issue-analyze.yml, issue-fix.yml e pr-analyze.yml em um patch cujo metadado traz a data de autoria de 9 de junho de 2026.
A Pillar disse ter verificado que os workflows haviam sido removidos em 2 de julho e que o Google confirmou a correção em 21 de julho.
Uma verificação em 4 de agosto de 2026 não encontrou nenhum dos três nomes de arquivo no diretório atual de workflows da branch principal do repositório.
Publicidade
Vibecoding cria 10x mais sistemas, 20x mais vulneráveis. E quem ganha com isso é a galera do hacking ético e pentest. Quer ser pago para invadir sistemas? Então você tem que aprender com a Solyd que são os melhores do Brasil. Saiba mais...