← voltar
CVE-2025-30154highsob ataqueCWE-506

Multiple Reviewdog actions were compromised during a specific time period

51Vexday Risk Score

Priorize a correção. Ela está sob exploração confirmada pelo CISA.

ssvc Actcvss 8.6epss 2.3%
da publicação à arma
Publicada no NVD19 de mar.
CISA KEV+5d
probabilidade de exploração
2.3%top 19% das CVEs
exploração observada
simCISA + VulnCheck
Ação exigida pela CISAprazo federal: 2025-04-14

Apply mitigations as set forth in the CISA instructions linked below. Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.

Resumo

Entre 18:42 e 20:31 UTC de 11 de março de 2025, a tag v1 de reviewdog/action-setup foi repontada para um commit malicioso hospedado em um fork, injetando código que despeja segredos do GitHub Actions nos logs do workflow. Como cinco outras actions do projeto (action-shellcheck, action-composite-template, action-staticcheck, action-ast-grep, action-typos) referenciam action-setup@v1 internamente, todas ficaram comprometidas nessa janela — independentemente de o usuário final ter pinado sua própria action por SHA ou não, porque o pin interno delas apontava para a tag flutuante v1. Não é uma falha de lógica explorável a qualquer momento: é uma injeção de código malicioso limitada a uma janela de ~1h49min, descoberta pela Wiz Research junto com o caso relacionado do tj-actions/changed-files (CVE-2025-30066).

Detalhamento técnico

O vetor de ataque foi de cadeia de suprimentos, não uma vulnerabilidade de código no sentido tradicional (CWE-506, Embedded Malicious Code). O commit malicioso (f0d342d) foi adicionado ao script install.sh de action-setup e passou a executar, antes da instalação normal do reviewdog, um payload Python codificado em base64. Esse payload é uma variante de técnica de memory scraping (baseada em publicação de davidebove.com sobre leitura de /proc//maps e /proc//mem): ele localiza o processo Runner.Worker, percorre suas regiões de memória legíveis e despeja o conteúdo, filtrando por padrões JSON no formato usado internamente pelo Actions Runner para armazenar valores marcados como secret ("isSecret":true). O resultado filtrado é reempacotado em base64 e ecoado para o log do workflow com ::group::, tornando os segredos visíveis a qualquer um com acesso de leitura ao log da execução.

Como é explorada

O código só executa a extração se sudo estiver disponível sem senha e o runner for GitHub-hosted Linux (RUNNER_ENVIRONMENT=github-hosted, RUNNER_OS=Linux) — restrição que o próprio script malicioso verifica antes de rodar o dump de memória, então runners self-hosted ou não-Linux não são afetados por esse payload específico. Não há interação do usuário nem autenticação prévia necessária: basta que o workflow do repositório invoque, na janela de compromisso, action-setup@v1 (ou qualquer uma das cinco actions dependentes) em um runner hospedado pelo GitHub para os segredos configurados naquele workflow — tokens, credenciais de cloud, chaves de API — acabarem impressos no log de execução, que pode ser público se o repositório for público.

Versões

Afetadas
reviewdog/action-setup@v1 (tag, comprometida entre 2025-03-11 18:42 e 20:31 UTC, independentemente do método de pin usado pelo consumidor). Por dependência transitiva na mesma janela: reviewdog/action-shellcheck < v1.29.2; reviewdog/action-composite-template < v0.20.2; reviewdog/action-staticcheck < v1.26.2; reviewdog/action-ast-grep < v1.26.2; reviewdog/action-typos < v1.17.2.
Corrigidas em
reviewdog/action-setup@v1 retaguerado para código legítimo via commit 3f401fe. reviewdog/action-shellcheck v1.29.2+; reviewdog/action-composite-template v0.20.2+; reviewdog/action-staticcheck v1.26.2+; reviewdog/action-ast-grep v1.26.2+; reviewdog/action-typos v1.17.2+.

Como se proteger

Não há uma versão "corrigida" para instalar em substituição — o problema foi a tag v1 apontando para commit malicioso, que a mantenedora já retagueou para o código legítimo (commit 3f401fe). A ação corretiva real é auditar: verificar se algum workflow do repositório executou reviewdog/action-setup@v1 (ou action-shellcheck, action-composite-template, action-staticcheck, action-ast-grep, action-typos nas versões afetadas) entre 11/03/2025 18:42 e 20:31 UTC; se sim, tratar todos os segredos expostos naquele workflow como comprometidos e rotacioná-los. A mantenedora recomenda pinar todas as GitHub Actions por hash de commit (não por tag de versão) e garantir que as próprias actions usadas não dependam internamente de outras actions por tag flutuante — o próprio reviewdog já migrou seus repositórios para pins por SHA usando a ferramenta pinact. Pinar sua chamada da action por SHA não protegeria neste caso específico, porque a dependência interna (action-setup@v1) usava tag, não SHA — por isso a recomendação inclui verificar as dependências internas das actions, e, para quem quer eliminar esse vetor por completo, instalar o binário reviewdog diretamente em vez de usar as actions wrapper.

Como detectar

O sinal mais direto é procurar, nos logs de execução de workflows do GitHub Actions do repositório, blocos ::group::🐶 Preparing environment ... seguidos de saída em base64 gerada por chamadas sudo python3 $TEMP/runner_script.py — isso indica que o payload malicioso rodou e potencialmente vazou segredos para o log. Também vale auditar o histórico de execuções de workflow (Actions > runs) filtrando pela janela de 11/03/2025 18:42–20:31 UTC para checar se algum job usou as actions afetadas nesse intervalo específico; fora dessa janela não há indicador de comprometimento, já que o código malicioso só existiu enquanto a tag v1 apontava para o commit forjado.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
reviewdog/action-setup is a GitHub action that installs reviewdog. reviewdog/action-setup@v1 was compromised March 11, 2025, between 18:42 and 20:31 UTC, with malicious code added that dumps exposed secrets to Github Actions Workflow Logs. Other reviewdog actions that use `reviewdog/action-setup@v1` that would also be compromised, regardless of version or pinning method, are reviewdog/action-shellcheck, reviewdog/action-composite-template, reviewdog/action-staticcheck, reviewdog/action-ast-grep, and reviewdog/action-typos.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Produtos afetados
reviewdog · reviewdog