Detectado um ataque em massa a pacotes no repositório NPM, realizado por meio de um novo verme autorreplicável chamado ChainDrop, que insere software malicioso nas dependências. Como resultado do ataque, foram publicadas 2212 versões maliciosas para 444 pacotes. Os pacotes mais populares comprometidos, como keyv, flat-cache e file-entry-cache, têm 154, 149,9 e 147,6 milhões de downloads por semana.
O carregador do verme estava localizado nos arquivos setup.mjs e Math_Symbol.js, que eram executados por meio de um manipulador preinstall (‘preinstall’: ‘node setup.mjs’), chamado durante a instalação do pacote afetado. Os scripts mencionados baixavam o runtime legítimo do Bun e o código ofuscado do verme, com tamanhos de 710 Kb. Após a ativação, o verme procurava no sistema e nas variáveis de ambiente tokens para NPM, PyPI, CircleCI, AWS, GCP, Docker, Azure, HashiCorp, KubernetesK8s e outros serviços (no total, mais de 140 caminhos de arquivos, como ~/.npmrc), além de analisar a memória (através de /proc//mem) do ambiente GitHub Actions em busca de tokens e credenciais.
Se um token para conectar ao repositório NPM for detectado, o verme publicava automaticamente novas versões maliciosas para os pacotes desenvolvidos no ambiente atual, infectando a árvore de dependências. Ao contrário do verme anteriormente identificado Shai-Hulud 2.0 no ChainDrop, foi implementada a técnica EtherHiding para obter comandos de controle através da blockchain pública Ethereum, utilizado criptografia para ocultar dados confidenciais transmitidos ao servidor dos atacantes e garantido a inserção em arquivos de configuração do Claude Code, VS Code e GitHub Copilot para solidificar a presença no sistema.
O ataque começou com a compromissão do processo de formação de releases baseado em GitHub Actions para o pacote keyv, que tem 154 milhões de downloads por semana e é usado como dependência em 1703 pacotes. Os atacantes criaram uma nova versão 6.0.0, inserindo um código malicioso, e a publicaram usando o mecanismo ‘Trusted Publishers’ e uma correta certificação SLSA. Após a publicação, o verme afetou muitos pacotes dependentes de keyv e, por sua vez, começou a comprometer as dependências indiretas.
Entre os pacotes mais populares que foram afetados pelo verme que publicou versões maliciosas para eles estão:
- flat-cache 6.1.24 (149,8 milhões de downloads por semana);
- file-entry-cache 11.1.6 (147,5 milhões);
- cacheable-request 13.0.20 (33,9 milhões);
- @cacheable/utils 2.5.1 (8,7 milhões);
- cacheable 2.5.1 (7,8 milhões);
- @cacheable/memory 2.2.1 (7,1 milhões);
- cache-manager 7.2.10 (4,2 milhões);
- @cacheable/node-cache 3.1.2 (1,5 milhões).
Fonte: linux.org.ru
