CVE-2024-53866

The package manager pnpm prior to version 9.15.0 seems to mishandle overrides and global cache: Overrides from one workspace leak into npm metadata saved in global cache; npm metadata from global cache affects other workspaces; and installs by default don't revalidate the data (including on first lockfile generation). This can make workspace A (even running with `ignore-scripts=true`) posion global cache and execute scripts in workspace B. Users generally expect `ignore-scripts` to be sufficient to prevent immediate code execution on install (e.g. when the tree is just repacked/bundled without executing it). Here, that expectation is broken. Global state integrity is lost via operations that one would expect to be secure, enabling subsequently running arbitrary code execution on installs. Version 9.15.0 fixes the issue. As a work-around, use separate cache and store dirs in each workspace.
Configurations

Configuration 1 (hide)

cpe:2.3:a:pnpm:pnpm:*:*:*:*:*:*:node.js:*

History

22 Sep 2025, 18:03

Type Values Removed Values Added
CPE cpe:2.3:a:pnpm:pnpm:*:*:*:*:*:*:node.js:*
First Time Pnpm
Pnpm pnpm
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 9.8
Summary
  • (es) El administrador de paquetes pnpm anterior a la versión 9.15.0 parece manejar mal las anulaciones y la caché global: las anulaciones de un espacio de trabajo se filtran en los metadatos de npm guardados en la caché global; los metadatos de npm de la caché global afectan a otros espacios de trabajo; y las instalaciones por defecto no revalidan los datos (incluso en la primera generación del archivo de bloqueo). Esto puede hacer que el espacio de trabajo A (incluso ejecutándose con `ignore-scripts=true`) posea la caché global y ejecute scripts en el espacio de trabajo B. Los usuarios generalmente esperan que `ignore-scripts` sea suficiente para evitar la ejecución inmediata del código en la instalación (por ejemplo, cuando el árbol simplemente se vuelve a empaquetar/agrupar sin ejecutarlo). Aquí, esa expectativa se rompe. La integridad del estado global se pierde a través de operaciones que uno esperaría que fueran seguras, lo que permite ejecutar posteriormente la ejecución de código arbitrario en las instalaciones. La versión 9.15.0 corrige el problema. Como workaround, use directorios de caché y de almacenamiento separados en cada espacio de trabajo.
References () https://github.com/pnpm/pnpm/commit/11afcddea48f25ed5117a87dc1780a55222b9743 - () https://github.com/pnpm/pnpm/commit/11afcddea48f25ed5117a87dc1780a55222b9743 - Patch
References () https://github.com/pnpm/pnpm/security/advisories/GHSA-vm32-9rqf-rh3r - () https://github.com/pnpm/pnpm/security/advisories/GHSA-vm32-9rqf-rh3r - Exploit, Vendor Advisory

10 Dec 2024, 18:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-12-10 18:15

Updated : 2025-09-22 18:03


NVD link : CVE-2024-53866

Mitre link : CVE-2024-53866

CVE.ORG link : CVE-2024-53866


JSON object : View

Products Affected

pnpm

  • pnpm
CWE
CWE-426

Untrusted Search Path