- Uma GitHub Action popular usada para rastrear mudanças em cada branch foi comprometida, e um commit malicioso tentou vazar segredos de CI/CD
- 23.000 repositórios foram afetados, o GitHub removeu essa action e ela não pode mais ser usada
- É necessário substituir por uma action alternativa e, como há possibilidade de exposição de segredos em logs públicos de workflow, é essencial verificar e rotacionar as chaves
- O Harden-Runner da StepSecurity detectou o problema, e a empresa está distribuindo gratuitamente a action alternativa reforçada em segurança step-security/changed-files
Resumo do incidente
tj-actions/changed-files é usada em mais de 23 mil repositórios e foi comprometida
- O atacante modificou o código da action e redirecionou as tags de versão para um commit malicioso
- Com isso, segredos de CI/CD passaram a ser exibidos nos logs de build do GitHub Actions
- Há possibilidade de segredos terem sido expostos em logs públicos de workflow
- O Harden-Runner detectou endpoints inesperados e assim descobriu o problema
- Um script Python malicioso fazia o dump dos segredos a partir do processo Runner Worker
- Todas as tags foram apontadas para o mesmo hash de commit malicioso (
0e58ed8671d6b60d0890c21b07f8835ace038e67)
Medidas tomadas pelo GitHub
- O GitHub removeu a action
tj-actions/changed-files e interrompeu seu uso
- O CVE oficial é CVE-2025-30066
Como fazer a recuperação
-
1. Usar a action alternativa segura fornecida pela StepSecurity
- Substituir a action
tj-actions/changed-files por step-security/changed-files@v45
-
2. Remover todas as referências a tj-actions/changed-files
-
3. Auditar os logs de execução dos workflows do GitHub Actions
- É necessário verificar se houve vazamento de segredos nos logs de execuções recentes
- Se forem encontrados segredos expostos, é preciso fazer a rotação (redefinição) imediatamente
-
4. Configurar uma allowlist do GitHub Actions
- Configurar uma allowlist para que apenas GitHub Actions confiáveis sejam executadas:
- Pode ser definido nas configurações do GitHub:
- Settings → Actions → Allow select actions
-
5. Configurar o StepSecurity Harden-Runner
- No Harden-Runner, é possível configurar o monitoramento do tráfego de rede e da execução dos workflows
Próximos passos
- Problema reportado ao GitHub → issue no GitHub: #2463
- O repositório
tj-actions/changed-files foi removido
- Registrado oficialmente como CVE-2025-30066
- Problemas de segurança semelhantes podem ser detectados e prevenidos com o StepSecurity Harden-Runner
- Recomenda-se configurar o Harden-Runner para reforçar a postura de segurança e realizar monitoramento em tempo real
2 comentários
Ontem à noite não estava funcionando, mas agora voltou a funcionar.
Comentários do Hacker News
O autor e mantenedor do Renovate explica o cenário do ataque
tj-actions/changed-filesNos últimos anos, a confiança em dependências e extensões de terceiros vem diminuindo
O repositório voltou a ficar online e o desenvolvedor forneceu uma explicação
No Clickhouse, investigaram
github_eventspara identificar a conta usada no ataqueÉ chocante que a forma de executar CI/CD seja listar repositórios arbitrários do GitHub
O cofundador da StepSecurity explica como detectou o incidente de segurança
O problema é que o modo padrão de usar GitHub Actions depende de tags do git que não são imutáveis
GitHub Actions imutáveis devem ser introduzidos em breve
O projeto maven-lockfile descreve um PR mesclado automaticamente
GitHub Actions deveria usar lockfile para dependências