A falha crítica de Claude Code: quando abrir um issue te dá controle total de seus repositórios no GitHub Actions

Autor: Publicada 5 min de lectura 172 leituras

As imagens deste artigo foram geradas com inteligência artificial. Como publicamos

Um pesquisador de segurança, RyotaK de GMO Flatt Security, descobriu uma vulnerabilidade crítica na GitHub Action de Anthropic chamada Claude Code que permitia a um atacante se fazer com o controle de repositórios públicos vulneráveis com nada mais que abrir um issue: a ação poderia confiar em "bots" sem validar sua origem e, combinada com técnicas de prompt injection, derivar na exfiltração de credenciais e a tomada de controle do fluxo de CI/CD.

Em termos técnicos, a ação é desenhada para se integrar em pipelines de CI/CD e tem por defeito permissões amplas sobre código, issues, pull requests e arquivos de workflow. Para mitigar esse risco, a ação deveria restringir quem podia disparar, idealmente apenas usuários com permissões de escrita. A falha estava em uma verificação que permitia passar qualquer ator cujo nome terminasse em [bot] sob a apropriação errada de que os GitHub Apps são intrinsecamente confiáveis. No entanto, qualquer um pode criar e instalar um GitHub App em seu próprio repositório e usar seu token para interagir com repositórios públicos alheios; a ação interpretava essa interação como "bot de confiança" e aceitava o conteúdo malicioso.

A falha crítica de Claude Code: quando abrir um issue te dá controle total de seus repositórios no GitHub Actions
Imagem gerada com IA.

Uma vez que a ação aceita conteúdo adversário, o atacante pode usar prompt injection, ou seja, inserir instruções no texto que o modelo (Claude) interpreta como parte da sua tarefa. RyotaK demonstrou como conseguir que Claude leia e escreva de forma a filtrar variáveis de ambiente a partir de /proc/self/environ - onde podem residir segredos - e que essas variáveis incluíssem a cadeia necessária para obter um token de instalação do GitHub App com permissões de escrita. Esse token pode se trocar por acesso à ação e, portanto, permitir a injeção de código malicioso na própria ação que depois se propaga a projetos que a consomem.

Anthropic recebeu o relatório em janeiro, qualificando a série de falhas com um CVSS v4.0 7.8, corrigiu o bypass central em quatro dias e publicou endurecimentos adicionais durante a primavera; as correções estão incluídas a partir de claude- code- action v1.0.94. Anthropic também pagou uma recompensa pelo achado. Ainda assim, RyotaK confirmou aproximadamente 50 vetores distintos para contornar o sistema de permissões, o que sublinha que o problema é tanto técnico como de design: agentes com ferramentas e credenciais podem ser empurrados tão longe quanto lhes permitam suas permissões.

As implicações são de amplo alcance. Muitas organizações replicam exemplos de workflows tal qual e herdam más configurações, como a opção allowed_non_write_users: "*", que permite que qualquer usuário desencadeie a ação. Além disso, a prática de publicar resumos ou saídas de IA em painéis públicos das execuções de workflow cria canais de fuga adicionais. Já há precedentes reais: em fevereiro, uma injeção de prompt em um fluxo de triage permitiu roubar um token de publicação de npm e subir um pacote não autorizado, um claro exemplo de como uma cadeia de confiança rota pode converter um assistente de desenvolvimento em vetores de supply-chain.

Se você administra repositórios que usam Claude Code ou outras actions de IA, a primeira e mais urgente recomendação é Actualizar a claude- code- action v1.0.94 ou superior. Abaixo, revisa e endurece seus workflows: restringe quem pode disparar, não aceites triggers de atores não confiáveis ou genéricos com sufixo [bot] sem verificação adicional, e evita a configuração que permita a usuários sem permissões de escrita ativar ações críticas. Limitar as permissões do GITHUB_TOKEN e de qualquer ferramenta ao estritamente necessário e evita expor resumos ou saídas de agentes em painéis públicos ou artefatos que possam ser lidos por atacantes.

A falha crítica de Claude Code: quando abrir um issue te dá controle total de seus repositórios no GitHub Actions
Imagem gerada com IA.

Também é crítico pensar em design: não alimentes um agente com inputs não confiáveis quando tiver acesso a segredos ou permissões de escrita. Se você precisa processar contribuições públicas, implementa uma etapa de sanitização e aprovação manual antes de um agente ter acesso a tokens sensíveis; usa controles de aprovação para workflows de contribuintes externos e restringe o uso de ferramentas que possam escrever no repositório ou publicar pacotes. Aplica a filosofia de menor privilégio e o princípio de separação de funções entre revisão automática e ações que alterem artefatos ou segredos.

Para aqueles que querem aprofundar em como endurecer o GitHub Actions e mitigar vetores deste tipo, a documentação oficial do GitHub sobre segurança para Actions é um recurso básico e útil: https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions. Também é recomendável rever diretamente o repositório de Anthropic e suas versões da action para verificar a atualização: https://github.com/anthropic/claude-code- action.

O caso Claude Code não é uma curiosidade isolada, mas outra evidência de que as defesas contra prompt injection e o design de permissões no CI/CD continuam a ser áreas inmaduras. Os equipamentos de segurança e de desenvolvimento devem tratar ações de IA como componentes da cadeia de abastecimento: engajar com cautela, auditar suas permissões, exigir revisões humanas para entradas não confiáveis e aplicar monitoramento para detecção de comportamentos anormais. Entretanto, os provedores de agentes devem assumir que dados potencialmente maliciosos chegarão aos seus modelos e projetar barreiras técnicas, políticas e de uso que minimizem o dano se essas barreiras forem violadas.

Cobertura

Relacionadas

Mas notícias do mesmo assunto.