O ecossistema npm tem sido historicamente um alvo para ataques de cadeia de suprimentos, onde atores de ameaças exploram a natureza aberta de registros públicos de pacotes para inserir código malicioso em ambientes de desenvolvimento. Com o pnpm 11, o gerenciador de pacotes dá um passo direto para abordar esse risco crescente, ativando proteções de segurança essenciais por padrão.
Contexto de segurança da cadeia de suprimentos
Por anos, cada gerenciador de pacotes principal foi embarcado com uma suposição implícita: instale o que for publicado, sem perguntas. Esse comportamento padrão permitiu repetidamente que atacantes publicassem uma versão envenenada de um pacote popular e assistissem pipelines automatizados puxá-lo em minutos. Campanhas recentes de cadeia de suprimentos em Node.js, Python e PHP confiaram em ganchos de tempo de instalador para baixar payloads específicos da plataforma.
Novos padrões de segurança no pnpm 11
A atualização introduz três padrões endurecidos: uma Idade Mínima de Lançamento de 1.440 minutos (24 horas), bloqueio de subdependências exóticas por padrão e um novo modelo Allow Builds para controlar quais pacotes podem executar scripts de construção durante a instalação. As equipes podem sobrescrever essas configurações quando necessário, mas a postura padrão agora favorece a segurança sobre a imediatidade.
Idade Mínima de Lançamento e bloqueio de subdependências
A mudança mais impactante no pnpm 11 é a configuração de Idade Mínima de Lançamento, que agora é padrão para 1.440 minutos. Versões de pacotes recém-publicadas não são resolvidas até que tenham pelo menos um dia de idade, reduzindo a exposição durante a janela de maior risco imediatamente após a publicação. O pnpm 11 também ativa o bloqueio de subdependências exóticas por padrão, reduzindo a chance de pacotes introduzirem fontes de dependência menos críticas.
Modelo Allow Builds e governança
O novo modelo allowBuilds dá às equipes uma maneira mais limpa de governar quais pacotes podem executar scripts de construção durante a instalação. Em vez de espalhar uma política de lista de permissão de script de construção em várias configurações, as equipes agora a definem a partir de um padrão de nome de pacote que mapeia para booleanos. Isso é especialmente oportuno porque scripts de ciclo de vida permanecem um dos caminhos de execução mais usados em ataques npm.
Recomendações para equipes de desenvolvimento
Equipes executando pnpm 11 com os novos padrões devem auditar seu pnpm-workspace.yaml existente para entradas onlyBuiltDependencies ou ignoredBuiltDependencies e migrá-las para o novo mapa allowBuilds. Organizações tentando reduzir o risco de execução no tempo de instalação devem tratar minimumReleaseAge como um controle de base, mantendo um caminho de escape aberto para atualizações de emergência.