CVE-2026-82393: pnpm: A tarball dependency's manifest `name` escapes node_modules → arbitrary file write/overwrite on install
When resolving a package, pnpm uses the resolved manifest name as a raw path segment for the isolated-linker import target. A tarball dependency whose package.json name is a scoped path traversal (@x/../../…/<abs path>) is therefore extracted outside node_modules, to an attacker-chosen absolute path, and can overwrite existing files there. Attacker controls the destination, filenames, and contents → arbitrary file write → code execution (e.g. ~/.zshrc, .git/hooks/pre-commit, another package’s code). Occurs during pnpm install even with --ignore-scripts (no lifecycle scripts run), defeating that safety.
Same class as the just-patched GHSA-hwx4 (transitive-dependency alias traversal) and GHSA-v23m (stage download manifest name/version traversal), in a sink their fixes did not cover: the isolated-linker import target keyed by the resolved name.
References
- github.com/advisories/GHSA-vq4v-j7r6-jq4m
- github.com/pnpm/pnpm/commit/51300fd41c5e4c8f47635108e373cc3d1f324fa7
- github.com/pnpm/pnpm/commit/78e29fe5583a1e5d69ea05e414eff310f78d5ed9
- github.com/pnpm/pnpm/pull/12872
- github.com/pnpm/pnpm/pull/12890
- github.com/pnpm/pnpm/releases/tag/v10.34.5
- github.com/pnpm/pnpm/releases/tag/v11.11.0
- github.com/pnpm/pnpm/security/advisories/GHSA-vq4v-j7r6-jq4m
- nvd.nist.gov/vuln/detail/CVE-2026-82393
Code Behaviors & Features
Detect and mitigate CVE-2026-82393 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →