Prompt injection em workflows

O pesquisador RyotaK, da GMO Flatt Security, identificou uma vulnerabilidade crítica no GitHub Actions do Claude Code, da Anthropic, que permitia a invasores comprometer repositórios usando uma única issue maliciosa. A falha, classificada com CVSS 7.8, permitia bypass de permissões e exfiltração de tokens de autenticação, colocando em risco milhares de projetos. Variantes da misconfiguration foram exploradas ativamente antes da divulgação.

A vulnerabilidade afetava o workflow anthropics/claude-code-action, que integra o Claude Code aos processos de CI/CD do GitHub. O problema foi corrigido na versão 1.0.94, mas repositórios que ainda usam versões anteriores permanecem expostos.

Como o ataque foi executado

A falha principal residia na função checkWritePermissions, que aprovava automaticamente qualquer conta de GitHub App (bot) sem verificar permissões reais. Como bots têm acesso implícito de leitura a repositórios públicos e podem criar issues, um invasor precisava apenas de três passos:

  • Criar um GitHub App malicioso e abrir uma issue com instruções manipuladas no repositório alvo
  • O Claude Code interpretava o conteúdo da issue como comando legítimo e executava ações sem aprovação humana
  • Os tokens OIDC (ACTIONS_ID_TOKEN_REQUEST_TOKEN e ACTIONS_ID_TOKEN_REQUEST_URL) eram lidos de /proc/self/environ e exfiltrados de volta para a issue

Com esses tokens, o invasor podia gerar um token de instalação do GitHub App com acesso total de escrita, permitindo modificar código-fonte, workflows e pull requests.

Risco de cadeia de suprimentos

O impacto se estendia ao próprio repositório da Anthropic. Um atacante poderia modificar o código do Claude Code Action, e a atualização maliciosa se propagaria automaticamente para todos os repositórios dependentes. A configuração padrão allowed_non_write_users: "*" nos exemplos oficiais amplificava o risco ao permitir que qualquer usuário externo disparasse workflows. Esse tipo de ameaça à cadeia de suprimentos segue o mesmo padrão de ataques anteriores que comprometeram milhares de repositórios GitHub.

Vetor de ataque Consequência Requisito
Issue via GitHub App Bypass de permissão Repositório público
Prompt injection na issue Execução de comandos Workflow ativo
Leitura de /proc/self/environ Exfiltração de tokens OIDC Sem aprovação extra
Troca OIDC por token de app Acesso total de escrita Token OIDC obtido

Como mitigar o risco

Atualize o Claude Code Action para a versão 1.0.94 ou superior imediatamente. Remova a configuração allowed_non_write_users dos workflows, a menos que seja estritamente necessária. Restrinja as permissões do GITHUB_TOKEN ao mínimo indispensável e evite compartilhar certificados entre serviços HTTPS e autenticação.

Audite todos os workflows que usam IA para processamento de issues e PRs. Implemente a validação de atores humanos (checkHumanActor) em workflows sensíveis. Evite passar secrets para contextos onde entradas não confiáveis podem influenciar o comportamento do modelo.

Fontes