Um pacote npm malicioso foi recentemente identificado tentando atacar diretamente a infraestrutura do GitHub Actions, uma das ferramentas de automação mais usadas no mundo do desenvolvimento. A descoberta foi feita por pesquisadores da Veracode, que revelaram a existência de um pacote falso chamado @actions/artifact, nome idêntico ao do pacote legítimo e amplamente utilizado pela própria equipe do GitHub.
Esse ataque faz parte de uma técnica conhecida como typosquatting, que explora erros de digitação ou confusão de nomes para enganar desenvolvedores e induzi-los a instalar versões maliciosas de bibliotecas populares. O objetivo do pacote era roubar tokens de automação do GitHub Actions, comprometendo potencialmente repositórios inteiros e fluxos de integração contínua.
Neste artigo, explicamos como o ataque foi descoberto, como o código malicioso funcionava e quais medidas os desenvolvedores devem adotar para se proteger de golpes semelhantes.

O que é o ataque de typosquatting no npm?
O typosquatting é uma técnica de ataque à cadeia de suprimentos de software em que criminosos publicam pacotes falsos com nomes quase idênticos a bibliotecas legítimas. No caso descoberto, o invasor usou exatamente o mesmo nome do pacote oficial @actions/artifact, amplamente utilizado em workflows do GitHub Actions para gerenciar artefatos e resultados de execução.
O pacote malicioso foi publicado por um usuário chamado blakesdev e contou com várias versões suspeitas, numeradas entre 4.0.12 e 4.0.17. Antes de ser removido, acumulou mais de 47 mil downloads, um número expressivo que demonstra o quão fácil é induzir desenvolvedores ao erro quando se trata de pacotes populares.
Esse caso destaca a importância de verificar cuidadosamente a origem e a autenticidade dos pacotes instalados via npm, especialmente quando se trabalha com nomes semelhantes a projetos oficiais mantidos por grandes empresas.
Como o pacote malicioso funcionava
O script de pós-instalação
O funcionamento do pacote malicioso no npm era engenhosamente simples, mas eficaz. Ele continha um script pós-instalação (postinstall), um recurso legítimo do npm que permite executar comandos automaticamente após a instalação de um pacote.
No caso do @actions/artifact falso, esse script era usado para baixar um binário adicional chamado “harness” a partir de uma conta no GitHub (que já foi removida). Esse binário era o verdadeiro agente malicioso responsável por executar o ataque.
Ao explorar esse mecanismo legítimo, o invasor conseguia injetar código sem que o desenvolvedor percebesse nada de anormal, afinal, scripts de instalação são comuns em muitos pacotes legítimos.
O alvo: tokens do GitHub Actions
Uma vez executado, o binário harness buscava por variáveis de ambiente específicas usadas pelo GitHub Actions, como GITHUB_TOKEN e GITHUB_ secrets. Esses tokens são fundamentais para o funcionamento automatizado de pipelines, pois permitem autenticação e acesso a recursos internos dos repositórios.
Com esses tokens de automação, um invasor poderia se autenticar como se fosse o próprio GitHub ou o desenvolvedor legítimo, abrindo espaço para ataques extremamente perigosos, como publicação de artefatos maliciosos, acesso a código-fonte privado, ou até mesmo a propagação do malware para outros projetos integrados.
Esse tipo de comprometimento na cadeia de suprimentos de software (supply chain) é uma das ameaças mais críticas no ecossistema moderno de desenvolvimento, pois atinge a base de confiança entre desenvolvedores e ferramentas.
Exfiltração de dados
Após capturar os tokens, o código malicioso criptografava os dados e os enviava para um subdomínio suspeito (app.github[.]dev), o que ajudava a disfarçar a exfiltração sob uma aparência legítima.
Outro ponto curioso do ataque foi a presença de um “kill switch”, um mecanismo programado para desativar o malware automaticamente após 6 de novembro de 2025. Isso sugere que o ataque foi planejado com uma janela de operação específica, possivelmente para evitar detecção prolongada ou facilitar o controle da campanha.
Conclusão: um alerta constante para desenvolvedores
Este incidente mostra como até mesmo infraestruturas de desenvolvimento amplamente confiáveis, como o GitHub, podem se tornar alvo de ataques sofisticados. O caso do pacote npm malicioso @actions/artifact serve de lembrete de que qualquer dependência pode ser comprometida, mesmo quando parece legítima.
Embora as versões maliciosas já tenham sido removidas do npm e o caso esteja sob investigação, a ocorrência reforça a necessidade de vigilância contínua.
Desenvolvedores e equipes de DevOps/SREs devem:
- Verificar com atenção os nomes e autores dos pacotes antes da instalação.
- Utilizar ferramentas como npm audit para identificar vulnerabilidades conhecidas.
- Fixar versões exatas com o uso de arquivos de bloqueio (package-lock.json) para evitar surpresas em atualizações automáticas.
- Implementar políticas de segurança de dependências e monitoramento contínuo nos pipelines do GitHub Actions.
O ataque ao @actions/artifact é apenas mais um exemplo de como o ecossistema open source, apesar de poderoso, continua sendo um terreno fértil para ameaças de supply chain. Vigilância, transparência e boas práticas continuam sendo as melhores defesas contra esse tipo de risco.
