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.

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.

Nota de porta-voz do GitHub ao SempreUpdate:

“Os pacotes mencionados no blog da Veracode faziam parte de um exercício cuidadosamente controlado pela equipe Red do GitHub. O GitHub leva a segurança muito a sério e realiza regularmente testes rigorosos e realistas para avaliar sua postura de segurança e garantir resiliência contra as técnicas mais atuais de agentes mal intencionados. Em nenhum momento os sistemas ou dados do GitHub estiveram em risco.” 

Compartilhe este artigo
Sair da versão mobile