Código gerado por IA, exploit por IA
Em 18 de junho de 2026, um commit mesclado ao repositório público do Snowflake continha uma falha de injeção de comando na sua própria pipeline de CI/CD. O código não fora escrito à mão — fora gerado e revisado pelo GitHub Copilot Autofix, recurso de correção automática de vulnerabilidades do próprio GitHub, alimentado por IA generativa. Cinco dias depois, um agente de segurança autônomo da Wiz, chamado Red Agent, descobriu a vulnerabilidade, explorou-a e conseguiu acesso às credenciais internas da Jira rodando nos runners do GitHub Actions.
O que aconteceu é um marco raro na segurança de software: dois sistemas de IA atuando em sequência — um introduzindo uma falha, outro encontrando e explorando a mesma falha — e uma das empresas de dados mais importantes do mundo como consequência.
A falha
O commit em questão fazia parte de um patch de segurança aparentemente legítimo. O PR foi gerado pelo Copilot Autofix após um alerta de CodeQL identificar uma possível vulnerabilidade no workflow `jira_close.yml`, um arquivo responsável por fechar automaticamente tickets da Jira quando uma pull request era mesclada. O que o Autofix fez foi substituir uma dependência antiga — uma ação Atlassian Jira que dependia do repositório `gh-actions` — por chamadas diretas à API da Jira usando curl.
A mudança parecia sensata em tese: eliminar dependências externas, simplificar o fluxo. Mas o modelo de IA não compreendeu que a nova implementação não escapava adequadamente de um parâmetro de entrada usado na construção do URL da requisição. Quem mesclou o PR — provavelmente um humano confiando na recomendação — não percebeu que estava introduzindo uma via de injeção de shell.
O problema não estava no código da aplicação principal do Snowflake. Estava nas ferramente internas de integração que a empresa usa para gerenciar seu próprio fluxo de desenvolvimento. É exatamente aí que a falha se esconde: em workflows que as equipes de segurança raramente audita porque tratam como infraestrutura interna, não como software de produção.
A descoberta
Wiz Red Agent é uma ferramenta de auditoria autônoma da Wiz Research — basicamente, um agente de IA especializado em testar a segurança de repositórios públicos. Diferente de scanners tradicionais que buscam padrões conhecidos de vulnerabilidade, o Red Agent foi projetado para pensar em termos de cadeia de exploração: se eu fosse atacar essa empresa, por onde eu entraria?
Em 23 de junho, o agente analisou o repositório público do Snowflake e percebeu que o workflow `jira_close.yml` podia ser manipulado através do título de um issue aberto no GitHub. O título do issue era passado diretamente para o curl sem sanitização — e como o GitHub expõe esse valor para outros workflows, o agente conseguiu injetar comandos que rodariam no runner do CI/CD.
A partir daí, a exploração foi direta. Os runners do GitHub Actions rodavam dentro do ambiente do Snowflake e possuíam variáveis de ambiente contendo credenciais da Jira. Ao executar comandos injetados, o Red Agent acessou essas credenciais, validou o acesso ao sistema interno da Jira e confirmou que conseguia ler dados sensíveis da equipe de engenharia.
O relatório completo da Wiz, publicado em 17 de agosto, detalha que o agente não fez nada além do que um auditor legítimo precisaria fazer: explorar a cadeia de confiança entre o GitHub Issues e o CI/CD para demonstrar que um atacante real poderia fazer o mesmo. O Snowflake não foi responsável pela perda de dados no evento — o Red Agent apenas leu credenciais, não modificou nada — mas o fato de a vulnerabilidade existir por cinco dias sem detecção é alarmante.
Por que isso importa
Esse incidente revela um padrão que tende a se repetir conforme a adoção de IA generativa no desenvolvimento de software acelera. Ferramentas como Copilot Autofix foram projetadas para reduzir o tempo de correção de vulnerabilidades — o GitHub afirma que o tempo mediano caiu de 90 minutos para 28 minutos durante os testes beta. É uma métrica impressionante e, em muitos casos, válida para bugs triviais como variáveis não inicializadas ou tipos incorretos.
Mas quando o contexto é código que interage com APIs externas, configura pipelines ou lida com autenticação, a IA opera no território mais perigoso: ela entende a sintaxe, mas não a intenção. O modelo viu um alerta de segurança e gerou uma correção que parecia resolver o problema ao nível do código-fonte. O que não percebeu foi que a correção criava um vetor de ataque completamente novo em camadas que o modelo nem sequer sabia que existiam.
Não é o Copilot Autofix que está falhando de forma única — é o paradigma de confiança automatizada. Quando desenvolvedores passam a confiar sistematicamente em correções geradas por IA, especialmente em código de infraestrutura, estão automatizando a introdução de vulnerabilidades em escala. A diferença é que, desta vez, a ferramenta que descobriu a falha também foi uma IA.
O Snowflake já corrigiu o workflow e a Wiz divulgou o relatório de forma responsável, sem expor detalhes que pudessem ser reproduzidos. A lição é mais ampla: à medida que a indústria integra IA em cada etapa do ciclo de desenvolvimento — da escrita ao patch de vulnerabilidade —, o mesmo princípio de segurança deve se aplicar: verifique o código gerado pela IA com o mesmo rigor (ou mais) que verificaria qualquer contribuição de terceiros. Código escrito por máquina não é menos arriscado que código escrito por humano. É apenas arriscado de maneira diferente.
Fontes: Wiz Blog, dev.to, TechTarget
✓ Fontes independentes cruzadas e verificadas antes da publicação