Description
pnpm is a package manager. Prior to version 10.28.2, when pnpm processes a package's `directories.bin` field, it uses `path.join()` without validating the result stays within the package root. A malicious npm package can specify `"directories": {"bin": "../../../../tmp"}` to escape the package directory, causing pnpm to chmod 755 files at arbitrary locations. This issue only affects Unix/Linux/macOS. Windows is not affected (`fixBin` gated by `EXECUTABLE_SHEBANG_SUPPORTED`). Version 10.28.2 contains a patch.
Problem types
CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
CWE-732: Incorrect Permission Assignment for Critical Resource
Product status
References
github.com/pnpm/pnpm/security/advisories/GHSA-v253-rj99-jwpq
github.com/...ommit/17432ad5bbed5c2e77255ca6d56a1449bbcfd943
github.com/pnpm/pnpm/releases/tag/v10.28.2