CVE-2026-24131
BaseFortify
Publication date: 2026-01-26
Last updated on: 2026-01-28
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| pnpm | pnpm | to 10.28.2 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-22 | The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory. |
| CWE-732 | The product specifies permissions for a security-critical resource in a way that allows that resource to be read or modified by unintended actors. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability in pnpm occurs because it uses path.join() on the directories.bin field without validating that the resulting path stays within the package root. A malicious npm package can exploit this by specifying a bin directory path that escapes the package directory (e.g., "../../../../tmp"), causing pnpm to change permissions (chmod 755) on files at arbitrary locations outside the package. This affects Unix/Linux/macOS systems and was fixed in pnpm version 10.28.2.
How can this vulnerability impact me? :
This vulnerability can allow a malicious package to modify file permissions on arbitrary files outside its own directory, potentially leading to unauthorized execution of files or scripts. This could compromise system security by enabling privilege escalation or execution of malicious code on Unix/Linux/macOS systems.
What immediate steps should I take to mitigate this vulnerability?
Upgrade pnpm to version 10.28.2 or later, as this version contains a patch that fixes the vulnerability.