Um ataque à cadeia de suprimentos na amplamente utilizada GitHub Action 'tj-actions/changed-files', usada por 23.000 repositórios, possibilitou a atores de ameaças roubar segredos de CI/CD dos logs de construção do GitHub Actions.
A GitHub Action é uma ferramenta de automação muito popular desenhada para os workflows do GitHub Actions.
Ela permite aos desenvolvedores identificar arquivos alterados em um pull request ou commit e tomar ações baseadas nessas mudanças, geralmente usadas em testes, acionamento de workflow e linting de código automatizado e validação.
Conforme reportado inicialmente pela StepSecurity, atacantes adicionaram um commit malicioso à ferramenta em 14 de março de 2025, às 16:00 UTC, que despejou segredos de CI/CD do processo Runner Worker para o repositório de quaisquer projetos usando a action.
Como resultado, se logs de workflow fossem publicamente acessíveis, qualquer um poderia ler e roubar segredos expostos.
Os atacantes modificaram o código da action e atualizaram retroativamente várias tags de versão para referenciar um commit malicioso, de modo que todas as versões da ferramenta foram comprometidas.
Conforme a última atualização dos desenvolvedores, o atacante comprometeu um GitHub personal access token (PAT) usado por um bot (@tj-actions-bot), que tinha acesso privilegiado ao repositório da ferramenta.
No entanto, atualmente ainda não está claro como exatamente o PAT foi comprometido.
Em 15 de março, às 14:00 UTC, o GitHub removeu a action comprometida, e às 22:00 UTC do mesmo dia, o repositório foi restaurado com o código malicioso tendo sido removido.
Entretanto, o comprometimento tem repercussões duradouras para os projetos de software impactados, então um CVE ID (
CVE-2025-30066
) foi atribuído ao incidente para rastreamento.
Curiosamente, o código malicioso não exfiltrou a saída de memória para um servidor remoto, apenas tornando-a visível em repositórios publicamente acessíveis.
"A action comprometida injetou código malicioso em qualquer CI workflows que a usasse, despejando a memória do runner do CI contendo os segredos do workflow", explica Wiz em um relato sobre o incidente.
"Em repositórios públicos, os segredos ficariam então visíveis para todos como parte dos logs do workflow, embora ofuscados como uma payload base64 codificada duas vezes."
O repositório tj-actions restaurado foi atualizado mais cedo hoje para incluir instruções sobre o que os usuários potencialmente impactados precisam fazer, que incluem:
- Rotacionar quaisquer segredos usados durante o período do ataque (14-15 de março)
- Revisar Workflows para saídas inesperadas sob a seção 'changed-files'
- Se seus workflows referenciarem o commit comprometido por SHA, atualize-os imediatamente.
- Certifique-se de que agora está usando uma versão taggeada (ex.: v35, v44.5.1)
Para prevenir que segredos sejam expostos a comprometimentos similares no futuro, o GitHub recomenda que todas as GitHub Actions sejam fixadas a hashes de commit específicos em vez de tags de versão.
Além disso, o GitHub oferece funcionalidade de allow-listing que pode ser aproveitada para bloquear GitHub Actions não autorizadas/não confiáveis.
Publicidade
Conheça a Solyd One, e tenha acesso a todos os cursos de segurança ofensiva da Solyd, todas as certificações práticas, incluindo a SYCP, 2 CTFs anuais com prêmios de até 30 mil reais, dezenas de laboratórios realísticos, suporte, comunidade e muito mais. Saiba mais...