Pular para o conteúdo principal
Fechar
Segurança

Claude Code na Pipeline: O Buraco Estrutural e a Rule of Two

Gabriel Ferraresi· CEO | Tech866 de junho de 20265 min
claude codeci/cdprompt injectionsegurançagithub actions

A Anthropic colocou um agente de IA com acesso a secrets na sua pipeline CI/CD. A Microsoft mostrou como roubar tudo em dois passos. Não é hipótese, é vulnerabilidade estrutural documentada, com proof-of-concept funcional e 50 bypasses no sistema de permissões. Na Tech86, vimos incidentes de prompt injection em agentes de IA crescerem exponencialmente este ano. O caso do Claude Code GitHub Action é o mais revelador porque o problema não é um bug, é o design.

Dois caminhos, um sem sandbox

O Claude Code tem dois caminhos de execução. O Bash tool roda em sandbox Bubblewrap com limpeza de ambiente, a variável CLAUDE_CODE_SUBPROCESS_ENV_SCRUB remove credenciais do ambiente antes da execução. O Read tool, que lê arquivos, não tinha sandbox. A chamada é in-process, direta, bypassando o Bubblewrap completamente.

O resultado: o Read tool acessava /proc/self/environ e lia ANTHROPIC_API_KEY em texto claro. O sandbox que protegia o Bash era irrelevante para o Read. A Anthropic protegeu a porta da frente e deixou a janela aberta.

Mas ler a chave é só metade do problema. A Microsoft construiu um payload que derrotou duas defesas simultaneamente.

Os dois passos da Microsoft, derrotando filtro e scanner

O primeiro obstáculo: o filtro do Claude recusa imprimir chaves que começam com sk-ant-. O payload instrui o modelo: "corte os primeiros 7 caracteres da chave". O LLM obedece, emitindo a chave sem o prefixo. A saída passa pelo filtro porque não contém o padrão bloqueado.

O segundo obstáculo: o GitHub Secret Scanner redacta padrões conhecidos no stdout. Mas como o LLM modificou a chave antes da emissão, removendo o prefixo, o scanner não detectou. O texto que chega ao log não é uma chave válida. O atacante reconstrói a chave completa prependando sk-ant- do lado de fora.

Exfiltração via WebFetch, Bash, GitHub MCP, ou logs da Action. Qualquer canal de saída do agente funciona. A Microsoft provou que duas camadas de defesa, filtro do modelo e scanner de plataforma, são derrotadas quando o atacante controla o que o modelo emite.

RyotaK: 50 bypasses e o bot que virou admin

Em 1 de junho, RyotaK da GMO Flatt Security publicou 50 bypasses no sistema de permissões do Claude Code. O mais impactante: um bot falso com nome terminando em [bot] bypassou a verificação de permissão. A Action confia automaticamente qualquer GitHub App, sem validação de identidade.

Com esse bypass, exfiltrou OIDC tokens e obteve installation token com escrita total no repositório. Se o ataque fosse direcionado ao próprio repositório da Anthropic, envenenaria a Action usada por milhares de projetos. Supply chain attack em escala, sem tocar em um único pacote npm.

O exemplo oficial da Anthropic vinha com allowed_non_write_users: "*". Muitos copiaram. Qualquer usuário não-write tinha acesso total. Em fevereiro, ataque similar no Cline roubou npm publish token e empurrou @openclaw/cli não autorizado. 4 mil desenvolvedores afetados em 8 horas. Corrigido na v1.0.94. CVSS 7.8. Bounty de 4.800 dólares, segundo reportes da comunidade de segurança.

Comment and Control: o mesmo padrão em três agentes

Pesquisadores acadêmicos documentaram em abril o padrão "Comment and Control": o mesmo vetor de ataque funciona no Claude Code, no Gemini CLI Action e no Copilot Agent. Todos vulneráveis.

No Copilot Agent, comentários HTML ocultos, invisíveis para humanos na interface do GitHub, continham instruções codificadas em base64 que bypassaram o secret scanner. Exfiltração via git push para um repositório controlado pelo atacante. O agente lê o comentário, decodifica a instrução, executa e envia os dados para fora.

Claude Code: CVSS 9.4 Critical, segundo reporte do pesquisador. A Anthropic teria rebaixado para "None" com bounty de 100 dólares. Para contexto: Google pagou 1.337 dólares pelo mesmo tipo de vulnerabilidade no Gemini, segundo reportes públicos. GitHub pagou 500 pelo Copilot, segundo reportes públicos. A Anthropic pagou 100 e classificou como inexistente. Rebaixar CVSS 9.4 para "None" com bounty de 100 dólares envia o sinal errado para pesquisadores e para a indústria.

A Agents Rule of Two, o princípio que faltava

A Microsoft formulou a "Agents Rule of Two": um workflow de IA nunca deve ter os três simultaneamente, processamento de input não confiável, acesso a secrets via tools, e capacidade de comunicar externamente. Se dois já existem, o terceiro não pode ser adicionado.

Isso é fundamental porque prompt injection não é um bug do modelo, é contexto que o agente foi projetado para processar. PR titles e issue comments são dados legítimos do SDLC que o agente precisa ler. O atacante sequestra o contexto dentro dos limites do workflow pretendido. Não há patch para "o agente lê o que deveria ler".

Estamos entrando numa era onde linguagem natural é código executável, e inputs não confiáveis como GitHub issues devem ser tratados como hostis por padrão. A Rule of Two é o Principle of Least Privilege aplicado a agentes autônomos: se o agente precisa ler issues, não dê acesso a secrets. Se precisa de secrets, não permita comunicação externa. Se precisa comunicar, não processe input não confiável.

Na Tech86, aplicamos esse princípio em toda integração de IA em CI/CD. Auditamos workflows, isolamos tools com acesso a credenciais, e tratamos todo input do SDLC como não confiável. Se seu time usa agentes de IA em pipelines sem essa separação, o ataque da Microsoft não é um cenário hipotético, é o próximo incidente.

Continue no tema

Segurança de Agentes de IA: Prompt Injection, Worms e Supply Chain →

Interessado nesta solução?

Conheça nossos serviços gerenciados e infraestrutura.

Conheça Segurança Ofensiva

Perguntas Frequentes

O Claude Code tem dois caminhos de execução: o Bash tool roda em sandbox Bubblewrap com limpeza de ambiente, mas o Read tool faz chamada in-process direta sem sandbox. Isso permite ler /proc/self/environ e acessar ANTHROPIC_API_KEY em texto claro. O sandbox protegeu o Bash, mas não protegeu o Read.

Passo 1: o filtro do Claude recusa imprimir chaves começando com 'sk-ant-'. O payload instrui o modelo a cortar os primeiros 7 caracteres, lavando a saída antes da emissão. Passo 2: o GitHub Secret Scanner redacta padrões conhecidos, mas como o LLM modificou a chave antes do stdout, o scanner não detectou. O atacante reconstrói prependando 'sk-ant-'.

Um workflow de IA nunca deve ter três capacidades simultaneamente: processamento de input não confiável, acesso a secrets via tools, e capacidade de comunicar externamente. Se dois já existem no workflow, o terceiro não pode ser adicionado. É o equivalente ao Principle of Least Privilege para agentes autônomos.

50 bypasses no sistema de permissões, segundo publicação do pesquisador. Um bot falso com nome terminando em [bot] bypassou a verificação de permissão. A Action confia automaticamente qualquer GitHub App. Exfiltrava OIDC tokens e obtinha installation token com escrita total no repo. Se mirado no repo da Anthropic, envenenaria a Action usada por milhares de projetos.

Pesquisadores acadêmicos (abril de 2026) documentaram o mesmo padrão de ataque em três agentes: Claude Code, Gemini CLI Action e Copilot Agent. No Copilot Agent, comentários HTML ocultos invisíveis para humanos com base64 bypassaram o secret scanner. Exfiltração via git push. Claude Code: CVSS 9.4 Critical, segundo reporte do pesquisador. A Anthropic teria rebaixado para 'None' com bounty de 100 dólares.

Blog, Fale Conosco

Tem alguma pergunta sobre nossos artigos ou serviços? Nossa equipe está pronta para ajudar.

Agendar Reunião

Reserve um horário.

Agendar Agora

E-mail

Envie uma mensagem.

[email protected]

WhatsApp

Conversa rápida.

Endereço

Avenida Paulista, 1636 - São Paulo - SP - 01310-200

Especialista Tech86

Online agora

Olá! Como podemos ajudar a escalar seu negócio hoje?

Tech86 Engineering

Nós valorizamos sua privacidade

Utilizamos cookies e tecnologias similares para otimizar a sua experiência, analisar o tráfego do site e personalizar conteúdo. Ao clicar "Aceitar Todos", você concorda com o uso de todos os cookies. Leia nossa Política de Privacidade.