Vamos ao ataque à cadeia de abastecimento do tj-actions/changed-files. Leia o TL;DR, o que deve fazer, o que aconteceu e mais informações.
TL;DR
- O tj-actions/changed-files
O GitHub Action, que é atualmente utilizado em mais de 23.000 repositórios, foi comprometido, tendo sido divulgados segredos através de registos de fluxo de trabalho e afetado milhares de pipelines de CI.
- Todas as versões marcadas foram modificadas, tornando insegura a fixação baseada em marcações. Os repositórios públicos são os que correm maior risco, mas os repositórios privados também devem verificar a sua exposição.
- Os passos imediatos incluem a identificação dos fluxos de trabalho afectados, a remoção de todas as referências à ação comprometida, a rotação de segredos e a verificação de registos de actividades suspeitas.
Resposta da Aikido: Lançámos uma nova regra SAST que assinala qualquer utilização com gravidade crítica (Pontuação 100). O Aikido pode fixar automaticamente as suas acções no Github para evitar este tipo de exploração no futuro.
Em primeiro lugar, o que é que deve fazer?
Verificar se é afetado pelo j-actions/changed-files
ataque à cadeia de abastecimento:
A) Procurar tj-acções
na sua base de código
B) Utilize esta consulta do Github para encontrar referências à ação GitHub afetada nos repositórios da sua organização (substitua [your-org] pelo nome da sua organização).
Deixar de utilizar tj-actions/changed-files
o mais rapidamente possível e remover todas as referências à ação comprometida.
Rode os segredos dos pipelines afectados e verifique os registos dos seus serviços (de terceiros) quanto à utilização suspeita dos tokens expostos; concentre-se primeiro nos repositórios com registos de CI runner acessíveis ao público.
Vamos ao ataque: O que é que aconteceu?
Um incidente de segurança envolvendo o tj-actions/changed-files
O GitHub Action foi identificado em meados de março de 2025. Os atacantes introduziram código malicioso que expôs segredos de CI/CD através de registos de fluxo de trabalho. Relatado pela primeira vez pela Step Security, o incidente foi atribuído ao CVE-2025-30066.
Embora ainda não haja clareza sobre o que aconteceu e como o código foi enviado, a maioria dos relatórios indica que o invasor comprometeu um Token de Acesso Pessoal (PAT) do GitHub vinculado à conta tj-actions-bot, o que permitiu ao invasor fazer modificações não autorizadas, injetar código malicioso e manipular tags de versão.
Cronologia dos acontecimentos:
Antes de 14 de março de 2025: O código malicioso começou a afetar os repositórios afectados, causando a fuga de segredos para registos públicos.
14 de março de 2025: Os investigadores de segurança identificaram o compromisso e aumentaram a consciencialização.
15 de março de 2025: O script malicioso alojado no GitHub Gist foi removido. O repositório comprometido foi brevemente colocado offline para reverter as alterações maliciosas e mais tarde restaurado sem os commits prejudiciais.
15 de março de 2025: O repositório está novamente online com uma declaração sobre o ataque; o mantenedor também comentou sobre o ataque.
Embora a ameaça imediata tenha sido resolvida, as versões em cache da ação comprometida podem continuar a representar um risco. É necessária uma atenuação proactiva para proteger as credenciais sensíveis.
Qual é o impacto do ataque tj-actions/changed-files?
Repositórios que utilizam tj-actions/changed-files
especialmente as públicas, correm o risco de divulgar os segredos utilizados nos seus pipelies. Estes segredos foram expostos nos registos do fluxo de trabalho pelo código malicioso do agente da ameaça. Embora não tenha ocorrido nenhuma exfiltração de dados externa confirmada, os registos dos repositórios públicos podem ser acedidos por agentes maliciosos. Os repositórios privados são menos afectados, mas devem avaliar a sua exposição e rodar os segredos se forem afectados.
Repositórios públicos: Risco elevado devido à exposição pública de registos de fluxo de trabalho que contêm segredos.
Repositórios privados: Risco menor, mas ter segredos activos expostos nos registos do seu fluxo de trabalho continua a ser um risco significativo.
Utilizadores de acções em cache: Os fluxos de trabalho que colocaram em cache a ação comprometida podem continuar a estar em risco até que as caches sejam eliminadas.
Como é que o Aikido pode ajudar?
Lançámos um nova regra SAST que assinala qualquer tj-actions/changed-files
utilização com gravidade crítica (Pontuação 100). Se já utiliza o Aikido, está protegido. Se não tiver uma conta Aikido, pode ligar-se e verificar a sua configuração em poucos segundos.
Para além deste ataque, o Aikido também fixa automaticamente as suas acções no Github para evitar este tipo de exploração no futuro.
E o nosso feed proprietário de ameaças de malware - Aikido Intel - detecta malware em 3 minutos após o lançamento no npm, pypi, e será alargado às acções do Github em breve.
Facilitamos o acesso à sua cadeia de fornecimento de software e avisamo-lo atempadamente de novos riscos e ataques.
Saiba mais sobre o ataque:
- Uma análise sobre "Compreensão e recriação do ataque à cadeia de fornecimento tj-actions/changed-files" pelo analista da Latio, James Berthoty. James também mostra como recriar o ataque no seu próprio ambiente para testar o seu sensor (tenha cuidado).
- A Step Security, que primeiro comunicou o ataque, publicou uma análise de investigação: "Deteção Harden-Runner: a ação tj-actions/changed-files está comprometida"
- Ver CVE-2023-51664