Threats
Dez versões maliciosas de um pacote npm com cerca de 150 mil downloads semanais foram utilizadas num ataque à cadeia de fornecimento dirigido ao roubo de credenciais
02/09/2026
|
Um pacote npm utilizado para gerar código de integração entre aplicações e API foi comprometido através da publicação de dez versões maliciosas capazes de executar código durante a instalação. O pacote regista cerca de 150 mil downloads semanais, o que aumenta a possibilidade de o código ter chegado a ambientes de desenvolvimento e sistemas automatizados de compilação. Segundo uma análise da Socket.dev, as versões comprometidas foram publicadas a 28 de agosto, em dois momentos distintos, e abrangeram todas as linhas de versões que estavam a ser mantidas. Desta forma, uma atualização normal de dependências poderia resultar na instalação do código malicioso. O ataque recorre à configuração de compilação do pacote para iniciar o código durante a instalação e, em algumas versões, utiliza também um comando de pré-instalação. O programa malicioso estava oculto num ficheiro JavaScript ofuscado e procura credenciais em ficheiros de projetos, processos em execução, serviços cloud e variáveis de ambientes de integração contínua (CI). A Socket.dev associa a atividade a um ataque Mini Shai-Hulud ainda em curso. A designação refere-se às semelhanças técnicas com anteriores ataques à cadeia de fornecimento npm, não constituindo, por si só, uma atribuição aos mesmos atacantes. Um dos aspetos do incidente é que as versões comprometidas apresentavam registos de proveniência npm válidos e tinham sido publicadas através do mecanismo trusted publishing do GitHub Actions. De acordo com a análise, um workflow de publicação podia ser ativado através de um comentário num pull request. O processo obtinha depois o código a partir do fork associado a esse pull request e publicava o pacote utilizando uma identidade considerada legítima. O workflow não verificava se a pessoa que deixava o comentário era um colaborador de confiança do repositório. Na prática, a proveniência permitia confirmar qual o processo automatizado responsável pela publicação, mas não garantia que o código utilizado nesse processo fosse seguro. Depois de executado, o código malicioso procura tokens de acesso e outras credenciais em ficheiros, memória de processos, serviços de metadados cloud e variáveis de CI. As credenciais recolhidas são testadas e os resultados são armazenados de forma encriptada em repositórios públicos do GitHub criados pelos atacantes, segundo a Socket.dev. O malware pode ainda alterar workflows do GitHub Actions, monitorizar tokens em macOS e Linux e adicionar comandos persistentes às configurações de assistentes de programação baseados em IA. A análise aponta também para a possibilidade de utilizar sistemas acessíveis através de SSH para propagação e de comprometer outros pacotes quando obtém permissões de escrita nos respetivos registos. As organizações que tenham instalado uma das versões afetadas devem tratar o sistema como potencialmente comprometido, recomenda a Socket.dev. A resposta passa por isolar inicialmente a máquina ou o runner, preservar evidências e eliminar mecanismos de persistência antes da rotação das credenciais potencialmente expostas. A empresa recomenda ainda reconstruir os ambientes a partir de imagens conhecidas como seguras sempre que possível, renovar credenciais do GitHub, serviços cloud, CI e registos de pacotes e verificar lockfiles e inventários de software para identificar utilizações diretas ou indiretas das versões comprometidas. |