Pacote npm malicioso tenta atacar GitHub com typosquatting

Entenda como um pacote falso no npm usou typosquatting para tentar roubar tokens de automação do GitHub.

Escrito por
Jardeson Márcio
Jardeson Márcio é Jornalista e Mestre em Tecnologia Agroalimentar pela Universidade Federal da Paraíba. Com 8 anos de experiência escrevendo no SempreUpdate, Jardeson é um especialista...

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.

npm

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.

Compartilhe este artigo
Nenhum comentário