Ir para o conteúdo principal
ArchPrompts
Voltar ao blog
Caderno técnico / Nota de campo

Radar Tech: o PR que a IA aprovou (e a IA que o derrubou) — patch co-gerado por Copilot reintroduz injeção em CI/CD

Um PR co-gerado por GitHub Copilot Autofix trocou um padrão seguro de CI/CD por interpolação insegura, passou por GitHub Advanced Security e por um gate degenerado — e o Wiz Red Agent explorou tudo sozinho em 5 dias. O resumo do caso e a lição de arquitetura.

João Gabriel
4 min de leitura
Radar Tech: o PR que a IA aprovou (e a IA que o derrubou) — patch co-gerado por Copilot reintroduz injeção em CI/CD
AP / Prancha visual 01
Leitura principal

Radar Tech: o PR que a IA aprovou (e a IA que o derrubou)

Cadeia real: um patch co-gerado por Copilot reintroduziu uma injeção em CI/CD que passou por scans e foi explorada por um agente autônomo em 5 dias.

Na última janela de 24h, a discussão mais quente de segurança na comunidade foi a divulgação, pela Wiz, de um caso que sintetiza a nova realidade da engenharia de software: agentes de IA escrevendo código, revisores buscando automação, e nem humanos nem scanners estáticos pegaram o bug que um robô de segurança derrubou sozinho.

Em 18 de junho de 2026, um pull request no repositório público snowflakedb/snowflake-connector-net — cujo código-fonte contava com a co-autoria do GitHub Copilot Autofix — foi mesclado. O PR modernizava os workflows de integração com a Jira interna. No caminho, algo aparentemente inofensivo aconteceu: o padrão seguro que usava env: + jq --arg para levar o título de uma issue até um script foi trocado por interpolação direta do título dentro de um run:.

O resultado é a classe de bug mais perigosa do CI moderno: injeção de script via input não-confiável. Qualquer pessoa no GitHub podia abrir uma issue e, no título, esconder um payload que quebrava o shell do runner — com acesso ao token da Jira da empresa.

O que mais passou batido

Três camadas de proteção falharam ao mesmo tempo:

  • GitHub Advanced Security extraiu o workflow vulnerável na última revisão do PR, mas não sinalizou a injeção. Serve de lembretrete: scan estático que "passa" não é prova de segurança.
  • O security gate do workflow comparava github.event.pull_request.user.login — mas um campo que é null em eventos de issue. A condição degenerou em null != 'bot' = sempre verdadeira para qualquer usuário.
  • O escaping com sed rodava depois da expansão dos templates do GitHub Actions, então a proteção era ilusória: a expansão ${{ }} acontece antes de o script chegar ao shell.

O agente que aprendeu com o próprio erro

Foi aí que entrou o Wiz Red Agent: um pesquisador de segurança totalmente autônomo. Cinco dias depois de o bug ficar live, ele abriu uma issue com um título-camada de payload que exfiltrava o token da Jira via um callback out-of-band. Na primeira tentativa, um # usado para "comentar" a linha comeu o fechamento do $(...) e o shell acusou erro de sintaxe. Em vez de parar, o agente analisou o erro, adaptou o payload (; echo ' para fechar o bloco) e completou a exploração em segundos — entregando credenciais da Jira interna (engenharia, segurança e bug bounty da Snowflake) a um listener externo.

A Snowflake foi notificada via HackerOne em 23 de junho, corrigiu no mesmo dia, rotacionou a credencial e confirmou por auditoria que o Wiz foi o único ator na janela de 5 dias. Reconhecimento responsável, execução impecável. Mas o recado ficou.

O que isso significa para arquitetura

Este incidente não é sobre a Wiz nem a Snowflake — é sobre processo. Três verdades de arquitetura de segurança:

  1. Código gerado por IA precisa do mesmo rigor de revisão que código humano — e, dado o histórico, de um pouco mais. A IA reescreve para "simplicidade" e pode descartar, sem saber, a proteção que o padrão original carregava.
  2. Regressão safe→unsafe é a vulnerabilidade invisível. Ela não aparece em um diff de feature chamativo; aparece na substituição de um padrão defensivo por um enxuto. Precisamos de revisores que comparem estado novo vs. estado anterior do arquivo, não só que leiam o diff.
  3. Scans e gates são insumos, não garantias. Quem trata "passou no scan" como "está seguro" está contando com uma aposta perdida. O padrão seguro de gate/parsing (levar o dado por env: e consumir com jq/parsing) precisa virar convenção de review.

Um pack de prompt para conter essa classe de bug

Reunimos tudo isso em um pacote de 5 arquivos: um harness de revisão de segurança para patches gerados por IA, que transforma GPT-4, Claude ou Gemini em um revisor conservador e evidência-driven — capaz de pegar injeção de input em run:, regressão safe→unsafe, gates degenerados e falsos "all clear" dos scanners, entregando um veredito JSON + ADR de decisão prontos para travar o merge no CI. Disponível no catálogo, na categoria Security.

Porque, neste trimestre, o adversário mais rápido não é humano — é outro agente. E o nosso safety layer precisa ser, no mínimo, igualmente rápido.

Radar Tech: o resumo rápido dos tópicos de tecnologia mais comentados nas últimas 24h.

Do conceito à execução

Ferramentas práticas para levar as decisões desta nota ao seu próximo projeto.

12 / selecionados
Pipeline de Desenvolvimento Seguro na Era da IA: estágios planejamento→implementação→verificação→entrega com feedback loop e papéis IA/humano.
Segurança
01 / 02

SSDLC na Era da IA: ADR + pipeline seguro para times que adotam copilotos e agentes de código (pacote de 5 arquivos)

por João Gabriel

gpt-4ClaudeGemini+1
(0)
0 vendas
R$ 49,90
Arquitetura de sandbox para agentes de IA: agente não-confiável → orquestrador de política → sandbox descartável com controles de rede/credenciais e auditoria.
Segurança
01 / 02

ADR de adoção de sandbox seguro para agentes de IA (pacote multi-arquivo: prompt + guardrails + exemplos + harness de verificação)

por João Gabriel

gpt-4gpt-4-turboGPT-4o+3
(0)
0 vendas
R$ 49,90
Cadeia de ataque: entrada não confiável → Marshal.load → gadget chain universal → RCE, com o caminho de mitigação por ADR.
Segurança
01 / 03

ADR de Mitigação de RCE por Deserialização no Ruby 4.x — pacote multi-arquivo (prompt principal + regras + exemplos few-shot + harness de verificação + variações de stack)

por João Gabriel

gpt-4GPT-4oclaude-3-5-sonnet+3
(0)
0 vendas
R$ 59,90
Cadeia de ataque do incidente Snowflake×Wiz: do PR gerado por IA ao roubo do token Jira via injeção em GitHub Actions.
Segurança
01 / 02

Harness de Revisão de Segurança para Patches Gerados por IA (Injeção em CI/CD) — 5 arquivos

por João Gabriel

gpt-4ClaudeGemini
(0)
0 vendas
R$ 49,90
Árvore de Decisão ADR — Três opções de mitigação (A: aceitar risco, B: mitigação em camadas, C: rewrite do subsistema) com consequências e critérios de aceite.
Segurança
01 / 02

Mitigação de GhostLock (Stack Use-After-Free) em Infraestrutura Linux

por João Gabriel

gpt-4gpt-5claude-4+3
(0)
0 vendas
R$ 29,94
Cadeia de ataque da CVE-2026-3854 — de um git push com push options maliciosas até RCE no servidor GitHub.
Segurança
01 / 02

Mitigação de Injeção em Protocolos Internos — Pacote Multi-arquivo para Engenheiros de Arquitetura

por João Gabriel

gpt-4ClaudeGemini
(0)
0 vendas
R$ 29,94
Fluxo de Decisão do ADR: do gatilho (lançamento TS 7.0) até a decisão registrada e implementação, passando por avaliação técnica, análise de riscos e estratégia de migração.
ADR
01 / 03

Adoção do TypeScript 7.0: Pacote Completo para Decisões Arquiteturais de Migração de Compilador

por João Gabriel

gpt-4ClaudeGemini+1
(0)
0 vendas
R$ 29,94
Cadeia do ataque de supply-chain ao LiteLLM: comprometimento em cascata via PyPI, scraping de memória, exfiltração de 195 TB e a lição do caso Trivy (rotacionar ≠ revogar).
Segurança
01 / 02

ADR de Segurança de Supply-Chain: documentando decisões de gestão de segredos e mitigando vazamentos de credenciais em CI/CD (pacote multi-arquivo)

por João Gabriel

gpt-4ClaudeGemini+1
(0)
0 vendas
R$ 49,90
Cadeia do ataque: evento não confiável interpolado em run: expõe segredo interno via gate 'sempre verdadeiro'.
Segurança
01 / 02

ADR de Hardening de Workflows GitHub Actions Orientados a Eventos: endureça CI/CD contra injeção de script e exfiltração de segredos

por João Gabriel

GPT-4oclaude-3-7-sonnetgemini-2.0-flash
(0)
0 vendas
R$ 49,90
Comparação visual entre o custo de mudanças no modelo tradicional vs. modelo com agentes de IA. À esquerda escrever e manter estão atrelados. À direita, escrever é barato mas ownership continua caro.
Agentes
01 / 03

Agente de Decisão Arquitetural: Framework Multi-Arquivo para Governança de Mudanças com IA

por João Gabriel

gpt-4ClaudeGemini
(0)
0 vendas
R$ 35,94
Árvore de decisão ADR-001: três opções de arquitetura de defesa para plataforma ML, com a escolhida (Opção C) destacada
Segurança

Defesa Contra Ataques Autônomos por IA em Plataformas ML — Pacote Multi-Arquivo

por João Gabriel

gpt-4gpt-5claude-4+6
(0)
0 vendas
R$ 29,94
Cadeia de ataque: input não-confiável → injeção de prompt → tool-call → RCE no host (ex.: ferramentas de coding e CLIs de IA)
Segurança
01 / 03

Endurecimento de Agentes contra Injeção de Prompt → RCE — Pacote Multi-Arquivo para Projetar um Pipeline de Execução Segura (ADR de Segurança)

por João Gabriel

gpt-4GPT-4oClaude+3
(0)
0 vendas
R$ 49,90