CEVIU Logo
Voltar

GitHub desativa scripts de execução automática no npm

Aprofundamento CEVIU

Aprofundamento

O npm v12, previsto para julho de 2026, desativa por padrão os scripts preinstall, install e postinstall, além de prepare em dependências Git, arquivo e link. Também bloqueia por padrão a resolução de dependências via Git (--allow-git=none) e tarballs HTTPS (--allow-remote=none). Essas medidas respondem a ataques reais: em 2025, foram publicados quase 455 mil pacotes maliciosos no npm, incluindo o sequestro de pacotes como debug e chalk (2,6 bilhões de downloads semanais) e o comprometimento do axios em março de 2026. A execução automática de scripts foi identificada como a maior superfície de ataque no ecossistema.

Para manter funcionalidades legítimas, como compilação de módulos nativos com node-gyp ou instalação de ferramentas como Playwright e Electron, os desenvolvedores precisarão usar npm approve-scripts e npm deny-scripts para gerenciar uma lista de permissões explícita no package.json. O npm 11.16.0 já emite avisos antecipados sobre comportamentos que serão bloqueados na v12, ajudando equipes a auditar seus pacotes antes da mudança.

Por que isso importa

Essa mudança não é só técnica: é uma mudança de paradigma na cadeia de suprimentos JavaScript. O npm passa de um modelo de confiança implícita, onde qualquer pacote pode executar código ao ser instalado, para um modelo de aprovação explícita. Isso reduz drasticamente o risco de injeção de código malicioso durante npm install, mesmo quando o atacante não controla o pacote principal, mas apenas uma dependência transitiva. Como mostram os incidentes recentes, scripts de instalação são o vetor mais explorado para ataques à cadeia de suprimentos, e agora exigirão consentimento explícito do mantenedor do projeto.

Impacto para desenvolvedores

Desenvolvedores precisarão revisar seus package.json e workflows CI/CD para garantir que pacotes críticos como puppeteer, electron ou bibliotecas com módulos nativos estejam na lista de permissões. Comandos como npm approve-scripts --allow-scripts-pending ajudam a identificar scripts pendentes. Projetos que usam binding.gyp sem script install explícito também serão afetados, a compilação será bloqueada até que o pacote seja aprovado. Equipes devem atualizar para npm 11.16.0 agora para receber avisos prévios e evitar quebrar builds em julho de 2026.

Perguntas frequentes

O que muda no npm v12 com relação aos scripts de instalação?

O npm v12 desativa por padrão os scripts preinstall, install, postinstall e prepare de dependências Git/arquivo/link. Também bloqueia resolução de dependências Git e tarballs HTTPS. Para executá-los, é necessário usar listas de permissão explícitas com npm approve-scripts.

Por que o npm está desativando esses scripts agora?

Porque scripts de instalação são o vetor de ataque mais frequente na cadeia de suprimentos do npm. Em 2025, houve quase 455 mil pacotes maliciosos publicados, incluindo sequestros de pacotes como debug e chalk, e o comprometimento do axios em março de 2026. A mudança visa eliminar essa superfície de execução automática de código.

Como saber se meu projeto será afetado pelo npm v12?

Atualize para npm 11.16.0 ou superior: ele emite avisos sobre scripts que serão bloqueados na v12. Execute npm approve-scripts --allow-scripts-pending para listar pacotes com scripts pendentes de aprovação. Projetos que usam Puppeteer, Electron, módulos nativos ou dependências Git provavelmente precisarão de ajustes.

O que é npm approve-scripts e como usar?

É um comando novo do npm para gerenciar listas de permissão explícitas de scripts. Ele adiciona entradas no campo scriptsAllowlist do package.json. Por exemplo: npm approve-scripts puppeteer@latest adiciona a versão específica do pacote à lista. A aprovação é feita por pacote e versão, não por escopo ou nome genérico.

Fontes

Avalie este artigo:
Compartilhar:
Categoria
CEVIU Segurança da Informação
Publicado
12 de junho de 2026
Editoria
CEVIU Segurança da Informação

Quer receber mais sobre CEVIU Segurança da Informação?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser