Ataques na cadeia de suprimentos

NPM 12 Mudará Comportamento de Execução de Scripts para Prevenir Ataques na Cadeia de Suprimentos

Em resposta a uma onda recente de ataques à cadeia de suprimentos mirando o ecossistema NPM, o GitHub anunciou que scripts de dependências não serão mais executados por padrão. Vários incidentes graves ocorridos nos últimos meses, principalmente associados ao TeamPCP e ao verme auto-replicante Shai-Hulud, têm abusado da execução automática e padrão de scripts de dependências durante o npm install para infectar milhares de desenvolvedores com malware.


Ionut Arghire Sábado - 13 de Junho de 2026 às 14:53
SecurityWeek

Em resposta a uma onda recente de ataques à cadeia de suprimentos mirando o ecossistema NPM, o GitHub anunciou que scripts de dependências não serão mais executados por padrão.

Vários incidentes graves ocorridos nos últimos meses, principalmente associados ao TeamPCP e ao verme auto-replicante Shai-Hulud, têm abusado da execução automática e padrão de scripts de dependências durante o npm install para infectar milhares de desenvolvedores com malware.

Para proteger melhor os usuários, a partir da versão 12 do NPM, que deve chegar em julho, a execução de scripts será bloqueada por padrão, anunciou o GitHub.

npm install não executará mais scripts preinstall, install ou postinstall de dependências, a menos que sejam explicitamente permitidos em seu projeto”, explica a plataforma de compartilhamento de código.

Impacto em builds nativos e dependências

A mudança também afetará builds nativos do node-gyp, como pacotes que possuem um binding.gyp e nenhum script de instalação explícito, bem como scripts prepare de dependências git, arquivo e link. Os recentes ataques Shai-Hulud Miasma dependiam de um arquivo binding.gyp weaponizado.

Para verificar como a próxima mudança afetará seus projetos, desenvolvedores podem executar npm approve-scripts –allow-scripts-pending e permitir os pacotes nos quais confiam e bloquear o restante, para obter uma lista de permissão que é escrita no package.json.

Uma vez que o JSON seja commitado, desenvolvedores usando NPM versão 11.16.0 ou superior receberão avisos se sua rotina de instalação executar scripts.

Dependências Git e URLs remotas

Além disso, o GitHub explica que dependências Git (diretas ou transitivas) não serão mais resolvidas no npm install, a menos que explicitamente permitidas.

“Isso fecha um caminho de execução de código onde o .npmrc de uma dependência Git poderia sobrescrever o executável Git, mesmo com –ignore-scripts”, observa a plataforma.

Da mesma forma, dependências de URLs remotas não serão mais resolvidas na versão 12 do NPM. Isso inclui tarballs HTTPS (diretas ou transitivas), mas desenvolvedores podem permiti-las através da flag –allow-remote, disponível desde a versão 11.15.0.

Orientações para desenvolvedores

“Atualize para NPM 11.16.0 ou posterior, execute sua instalação normal e revise os avisos. Use npm approve-scripts –allow-scripts-pending para ver quais pacotes têm scripts, aprove os que você confia e faça commit do package.json atualizado. Depois disso, apenas os scripts que você aprovou continuarão a ser executados quando você atualizar”, orienta o GitHub.

Supply Chain Security SecurityWeek securityweek.com

FONTE

SecurityWeek