PT-2026-4825 · Pnpm · Pnpm
CVSS v2.0
7.8
Alta
| Vetor | AV:N/AC:L/Au:N/C:N/I:C/A:N |
Nome do Software Vulnerável e Versões Afetadas
Versões do pnpm anteriores a 10.28.1
Descrição
O pnpm é suscetível a uma vulnerabilidade de travessia de diretório em seu mecanismo de vinculação de binários. Pacotes npm maliciosos podem explorar isso para criar shims executáveis ou links simbólicos fora do diretório
node modules/.bin. A vulnerabilidade surge porque nomes de binários que começam com @ contornam a validação, e sequências de travessia de diretório como ../../ não são totalmente removidas durante a normalização. Isso permite que atacantes potencialmente sobrescrevam arquivos de configuração, scripts ou outros arquivos sensíveis. O problema afeta todos os usuários do pnpm que instalam pacotes npm, bem como pipelines CI/CD que utilizam o pnpm. A vulnerabilidade está presente na lógica de validação e normalização de nomes de binários nos arquivos pkg-manager/package-bins/src/index.ts e pkg-manager/link-bins/src/index.ts. Especificamente, o filtro permite que qualquer nome de binário iniciado com @ passe sem validação. A função normalizeBinName não remove completamente as sequências de travessia de diretório. O nome normalizado é então usado diretamente em path.join() sem validação adicional. Uma prova de conceito (PoC) demonstra a criação de um pacote malicioso com uma entrada de binário como @scope/../../.npmrc, que, ao ser instalado, resulta na criação do arquivo .npmrc na raiz do projeto, fora do diretório esperado node modules/.bin.Recomendações
Atualize o pnpm para a versão 10.28.1 ou posterior.
Exploit
Correção
Relative Path Traversal
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Pnpm