pnpm

CVE-2026-55700

CVE-2026-55700 is a high-severity path traversal vulnerability in pnpm (npm), affecting versions >= 11.3.0, < 11.5.3. It is fixed in 11.5.3.

Key facts
CVSS score
7.1
High
Attack vector
Network
Issuing authority
GitHub Advisory Database
Affected package
pnpm
Fixed in
11.5.3
Disclosed
2026

Summary

Summary The staged-tarball filename traversal reported as GHSA-v23m-ccfg-pq9h / CAND-PNPM-038 is fixed on main by pnpm/pnpm#12303, merged as 65443f4bdf1f0db9c8c7dc58fee25252607e9234. Before the fix, pnpm stage download derived a local filename from registry-controlled package name and version fields. A crafted manifest could escape the selected download directory and overwrite another reachable file. The merged fix validates both fields, derives one safe filename, and verifies the final destination before writing. Security boundary Package names and semantic versions are validated before they can influence a local filename. POSIX and Windows path separators are rejected by basename checks. Stage download and tarball summary paths use the same filename helper. The resolved output path must remain an immediate child of the selected download directory. The stage identifier is already constrained to a UUID. Exploit replay Before 65443f4bdf, a traversal-bearing manifest version could make the command write outside the selected directory. After the fix, malicious package names fail with ERRPNPMINVALIDPACKAGENAME, malicious versions fail with ERRPNPMINVALIDPACKAGEVERSION, no outside file is created, and the download directory remains empty. Files changed releasing/commands/src/tarball/safeTarballFilename.ts validates manifest identity and rejects cross-platform path separators. releasing/commands/src/stage/download.ts verifies the resolved destination before writing. releasing/commands/src/tarball/summarizeTarball.ts uses the same filename contract. releasing/commands/test/stage.test.ts covers traversal through both package name and version. .changeset/stale-stage-tarballs.md includes patch bumps for @pnpm/releasing.commands and pnpm. Patch Merged PR: https://github.com/pnpm/pnpm/pull/12303 Fix commit: 65443f4bdf1f0db9c8c7dc58fee25252607e9234 The private candidate branch was not submitted because it conflicts with and is superseded by the merged fix. The upstream patch is slightly stronger because it covers malicious package names as well as versions. Commands run Validation Upstream regression coverage rejects traversal through both manifest name and version and verifies that no outside file is created. Compile and lint, dependency audit, Linux Node.js 22/24/26, CodeQL, and zizmor checks passed on the merged public PR. The Windows Node.js 22 full-suite job timed out in the unrelated pnpm/test/dlx.ts cache test after 512 other tests passed. The PR was merged by the maintainer; the failure did not involve the staging code. The earlier private candidate's focused exploit regression, positive control, package compile, ESLint, and git diff --check also passed. Compatibility Staging and release commands are TypeScript-only. Pacquet does not expose this command family, so no Rust-side port is required. Remaining risk The final fs.writeFile follows a pre-existing symlink at the exact in-directory output name. That requires separate local filesystem access and is not controllable through the registry manifest traversal described here. Written by an agent (Codex, GPT-5).

Impact

What is path traversal?

Input manipulates file paths to reach files outside the intended directory, such as configuration or credential files. Typical impact: unauthorized file read or write outside the intended directory.

Severity and exposure

CVE-2026-55700 has a CVSS score of 7.1 (High). The vector is network-reachable, no privileges required, and user interaction required. A CVSS score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether this affects your application depends on whether the vulnerable code is present and reachable in your environment.

A fixed version is available (11.5.3). Upgrading removes the vulnerable code path.

Affected versions

npm

  • pnpm (>= 11.3.0, < 11.5.3)

Security releases

  • pnpm → 11.5.3 (npm)
Kodem intelligence

Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.

Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter instead of chasing every advisory.

Kodem's runtime-powered SCA identifies whether CVE-2026-55700 is reachable in your applications. Explore open-source security for your team.

See if CVE-2026-55700 is reachable in your applications. Get a demo

Already deployed Kodem? See CVE-2026-55700 in your environment

Remediation advice

Upgrade pnpm to 11.5.3 or later to resolve this vulnerability.

Kodem Kai can prioritize this vulnerability in your dependency tree and generate a fix recommendation.

Frequently asked questions about CVE-2026-55700

What is CVE-2026-55700?

CVE-2026-55700 is a high-severity path traversal vulnerability in pnpm (npm), affecting versions >= 11.3.0, < 11.5.3. It is fixed in 11.5.3. Input manipulates file paths to reach files outside the intended directory, such as configuration or credential files.

How severe is CVE-2026-55700?

CVE-2026-55700 has a CVSS score of 7.1 (High). This score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether it represents real risk in your environment depends on whether the vulnerable code is present and reachable.

Which versions of pnpm are affected by CVE-2026-55700?

pnpm (npm) versions >= 11.3.0, < 11.5.3 is affected.

Is there a fix for CVE-2026-55700?

Yes. CVE-2026-55700 is fixed in 11.5.3. Upgrade to this version or later.

Is CVE-2026-55700 exploitable, and should I be worried?

Whether CVE-2026-55700 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo

What actually determines whether CVE-2026-55700 is exploitable, and how bad it is?

Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.

How do I fix CVE-2026-55700?

Upgrade pnpm to 11.5.3 or later.

Stop the waste.
Protect your environment with Kodem.