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_TOKENeACTIONS_ID_TOKEN_REQUEST_URL) eram lidos de/proc/self/environe 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.