CVE-2026-101044

pacquet before 12.0.0-alpha.5 Path Traversal via lockfile alias

Published Sep 27, 2026 CVSS 4.0 · 7.1 High EPSS < 1% KEV · Not listed
Description
pacquet, the Rust package-manager component shipped in the pnpm npm package versions >=12.0.0-alpha.0 and <12.0.0-alpha.5, does not validate dependency alias/name paths taken from a lockfile before using them in install-time filesystem joins. When a user installs a project with an attacker-supplied lockfile using --trust-lockfile or a frozen lockfile, alias entries containing path traversal segments (for example '../../escaped-link') are used when creating dependency and package links, bin destinations, hoisted entries, and virtual-store slots, allowing symlinks and directories to be created outside the intended project and node_modules boundary. Version 12.0.0-alpha.5 validates dependency names and every virtual-store slot path with a shared safe-join containment helper before any filesystem materialization, rejecting traversal, absolute, platform-specific, and reserved names with ERR_PNPM_INVALID_DEPENDENCY_NAME.

Analysis

AI-generated

Technical impact

pacquet, the Rust component of pnpm, fails to validate dependency alias paths from a lockfile before using them in filesystem operations during installation. This oversight permits attackers to embed path traversal sequences (for example, "../../escaped-link") within alias entries. When pnpm processes an attacker‑supplied lockfile with the --trust-lockfile or frozen options, it will create symlinks, directories, or links outside the intended project and node_modules boundaries. The result is arbitrary creation and manipulation of files or directories on the local filesystem, potentially overwriting critical data or enabling subsequent exploitation steps.

Affected Systems

The issue affects pnpm versions 12.0.0-alpha.0 through 12.0.0-alpha.4. Versions 12.0.0-alpha.5 and newer contain validation that rejects traversal, absolute, platform‑specific, or reserved names and protects the virtual‑store from unsafe entries.

Risk and Exploitability

The vulnerability scores a CVSS base score of 7.1, indicating medium to high severity. EPSS score is not available; the vulnerability is not listed in CISA KEV. The primary attack vector is a local attacker who can supply or influence the lockfile content. If the lockfile is not trusted, the exploitation can lead to filesystem modifications outside the project directory. Successful exploitation may lead to privilege escalation or compromise of the system file hierarchy, contingent on user privileges during pnpm execution.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade pnpm to 12.0.0-alpha.5 or later to benefit from validated dependency names and safe‑join containment.
  • If an upgrade cannot be performed immediately, avoid using the --trust‑lockfile or frozen lockfile options when installing packages from untrusted sources.
  • Verify that lockfiles are sourced from reputable origins and inspect alias values for suspicious path traversal before permitting installation.

Generated by OpenCVE AI on September 27, 2026 at 18:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description pacquet, the Rust package-manager component shipped in the pnpm npm package versions >=12.0.0-alpha.0 and <12.0.0-alpha.5, does not validate dependency alias/name paths taken from a lockfile before using them in install-time filesystem joins. When a user installs a project with an attacker-supplied lockfile using --trust-lockfile or a frozen lockfile, alias entries containing path traversal segments (for example '../../escaped-link') are used when creating dependency and package links, bin destinations, hoisted entries, and virtual-store slots, allowing symlinks and directories to be created outside the intended project and node_modules boundary. Version 12.0.0-alpha.5 validates dependency names and every virtual-store slot path with a shared safe-join containment helper before any filesystem materialization, rejecting traversal, absolute, platform-specific, and reserved names with ERR_PNPM_INVALID_DEPENDENCY_NAME.
Title pacquet before 12.0.0-alpha.5 Path Traversal via lockfile alias
First Time appeared Pnpm
Pnpm pnpm
Weaknesses CWE-22
CPEs cpe:2.3:a:pnpm:pnpm:*:*:*:*:*:*:*:*
Vendors & Products Pnpm
Pnpm pnpm
References
Metrics cvssV3_1

{'score': 7.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L'}

cvssV4_0

{'score': 7.1, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N'}

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Sources

Status
PUBLISHED
Assigner
VulnCheck
Published
Updated
Sep 30, 2026, 3:29 PM
Reserved
Sep 27, 2026, 3:48 PM
Status
Awaiting Analysis
Published
Sep 27, 2026, 6:16 PM
Modified
Sep 30, 2026, 5:23 PM
Severity
Important
Public date
Sep 27, 2026, 5:02 PM