As imagens deste artigo foram geradas com inteligência artificial. Como publicamos
O GitHub e a equipe de npm decidiram endurecer o comportamento por defeito do instalador de pacotes: em npm v12 se Desactivar os programas de instalação A resolução de dependências será restringida a partir de repositórios Git ou URLs remotos a menos que o desenvolvedor o autorize explicitamente. A medida procura fechar uma das vias mais exploradas em ataques à cadeia de fornecimento: a execução automática de código durante "npm install" através dos hooks do ciclo de vida (preinstall, install, pós-install e prepare).
A mudança responde a um risco real e frequente: um pacote comprometido em qualquer ponto da cadeia transitória pode executar código na máquina do desenvolvedor ou num runner CI. Muitos projetos, bibliotecas e ferramentas dependem de scripts que correm automaticamente ao instalar dependências, e essa confiança por defeito é o que os atacantes usaram para inserir portas traseiras ou executar payloads maliciosos em ambientes de desenvolvimento e implantação.

As implicações práticas são duales. Por um lado, melhoria da segurança Ao forçar a aprovação explícita da execução de programas e da resolução de fontes não registadas; por outro, pode romper builds e fluxos de desenvolvimento que hoje dependem de compilações nativas automáticas (node-gyp), prepare scripts desde referências Git, ou pacotes instalados a partir de tarballs remotos. As equipes e projetos que usam dependências com compilação nativa ou referências diretas a repositórios terão que se adaptar.
O GitHub recomenda preparar-se já atualizando o npm 11.16.0 ou superior, executar uma instalação normal e rever as advertências que o npm mostra. A ferramenta oferece um fluxo de aprovação com npm approve-scripts -- allow-scripts-pending, que permite rever, aprovar os programas de confiança e comprometer as alterações ao package.json para que apenas os aprovados continuem a correr depois de subir para npm v12. É uma oportunidade para auditar conscientemente quais pacotes realmente precisam executar código localmente.
Como medidas práticas para reduzir o impacto e melhorar a segurança da sua cadeia de abastecimento, considera o seguinte: teste as alterações em um ramo isolado e no runners da CI antes de migrar; atualiza as imagens ou contentores da CI para incluir a nova versão do npm; evita dependências do Git ou remotas sem justificar e, se necessário, autoriçalas de forma explícita; prioriza o uso de lockfiles e versões fixadas; e trata com especial cuidado os pacotes que realizam compilação nativa (node-gyp), pois npm pode bloquear rebuilds implícitos.

Além disso, integra controles complementares: habilita a análise de dependências e alertas (por exemplo, Dependabot ou Snyk) para detectar mudanças suspeitas, obriga a verificação humana para mudanças de dependência em pull requests relevantes, habilita 2FA e políticas de publicação no registro npm para os mantenedores, e conserva evidência de procedência com SBOM e assinaturas quando possível. A documentação de boas práticas do GitHub sobre segurança da cadeia de abastecimento é um bom ponto de partida: https://docs.github.com/en/code-security/supply-chain-security.
Para entender exatamente quais programas e comportamentos serão afetados convém ler a documentação oficial do npm sobre programas e lifecycle hooks; isto ajuda a identificar na sua árvore de dependências onde são executados programas e quais você precisa aprovar explicitamente: https://docs.npmjs.com/cli/v12/using-npm/scripts. Use a janela anterior ao lançamento para auditar e reduzir a superfície de ataque: menos scripts confiáveis por defeito = menos risco de execução não autorizada.
Em resumo, npm v12 representa um avanço significativo na proteção da cadeia de fornecimento de JavaScript ao converter uma extensão de confiança tácita em uma permissão explícita. Os equipamentos que adotarem estas medidas com planejamento, testes e controles adicionais reduzirão sua exposição a ataques supply-chain e, ao mesmo tempo, evitarão interrupções inesperadas em seus processos de construção e implantação.
Relacionadas
Mas notícias do mesmo assunto.

Alerta crítico em GitLab: adesivo de emergência corrige CVE-2026-19478 permitindo modificar ou remover projetos públicos sem credenciais
GitLab publicou em 17 de agosto de 2026 um adesivo de emergência para corrigir uma vulnerabilidade crítica em seu software auto-alojado (Community e Enterprise Edition) que, em ...

Quando o servidor MCP guarda suas credenciais: o vetor de ataque silencioso da IA em produção
A incorporação de agentes de IA em processos empresariais abriu uma via prática para que sistemas e dados em produção sejam acessíveis a partir dos modelos: chama-se Model Conte...

Alerta crítico: CVE-2026-58231 no SAP Commerce Cloud poderia permitir execução remota de código; adesivo e mitigações urgentes
Uma vulnerabilidade crítica que afeta a SAP Commerce Cloud, registrada como CVE-2026-58231 e com pontuação máxima 10.0 na escala CVSS, está sendo objeto de tentativas de explora...

A compra massiva de domínios expirados impulsiona fraude, malware e streaming pirata: o negócio por trás do dropcatch
Um relatório de inteligência sobre DNS divulgado pela Infoblox e divulgado por meios especializados confirma que os criminosos estão comprando domínios expirados em grande escal...

HoneyMyte atualiza CoolClient com um driver de kernel assinado para esconder processos e proteger o canal C2
Kaspersky publicou uma análise que atribui ao ator conhecido como HoneyMyte (também Mustang Panda) uma versão atualizada do backdoor CoolClient que incorpora um componente de ke...

GeoServer em alerta por vulnerabilidade de dia zero em jsonArrayContains com risco real de execução remota
O projeto de código aberto GeoServer tem uma vulnerabilidade de dia zero que está sendo ativamente explorada por atacantes, segundo alertas públicos de pesquisadores e assinatur...

AmnesiaStealer malware do macOS que rouba credenciais e controla sessões de navegador em tempo real
Pesquisadores de segurança documentaram uma nova família de malware dirigida ao macOS (denominada AmnesiaStealer), que combina um dropper em shell, um infostealer escrito em Rus...