Security readout for executives and security teams
Plain-English summary
A flaw in npm’s Arborist library could let dependency installation write files outside the intended project folder if a node_modules directory is replaced by a symbolic link. This threatens developer workstations and CI build systems more than production web servers. The published fix is Arborist 2.8.2, included in npm 7.20.7 and later.
Executive priority
Treat as a high-priority build-system hygiene issue. It is not described as remotely exploitable production compromise, but compromised developer or CI environments can create broader supply-chain risk. Prioritize upgrades in CI images and developer baselines.
Technical view
@npmcli/arborist before 2.8.2 may follow a symlinked node_modules path while extracting dependency contents, allowing writes to arbitrary filesystem locations. The issue is CWE-61 with CVSS 8.2. Sources note package-contained symlinks are filtered, so exploitation requires another way to create the node_modules symlink and user interaction.
Likely exposure
Exposure is most likely where npm v7 before 7.20.7 or @npmcli/arborist before 2.8.2 is used on developer machines, CI runners, or build automation. Risk increases when teams install dependencies from untrusted repositories or run package lifecycle scripts without isolation.
Exploitation context
The source bundle does not support active exploitation, and KEV is false. Exploitation requires local install activity and user interaction. Sources describe possible setup through lifecycle script behavior or a supplied repository, but they also note package artifact symlinks are filtered.
Researcher notes
The key boundary failure is Arborist writing through a symlinked node_modules path despite intended extraction confinement. Evidence is strongest for npm Arborist versions below 2.8.2. Downstream Oracle and Siemens references should be read as vendor-specific advisories, not proof that all their products are affected.
Mitigation direction
- Upgrade npm to 7.20.7 or later where npm v7 is used.
- Upgrade direct @npmcli/arborist usage to 2.8.2 or later.
- Disable package install scripts where feasible for untrusted dependency work.
- Avoid installing dependencies from untrusted repositories on privileged developer or CI systems.
- Check Oracle and Siemens advisories if their products are in scope.
- Review vendor guidance before applying product-specific mitigations.
Validation and detection
- Inventory npm versions on developer endpoints and CI images.
- Identify projects or tooling using @npmcli/arborist below 2.8.2.
- Check build logs and images for npm v7 earlier than 7.20.7.
- Review dependency installation workflows for untrusted repository handling.
- Verify node_modules is not a symlink before sensitive dependency installation.
- Confirm downstream vendor advisories apply before tracking them as affected.
Public sources used
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
CWE-61: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Open ATT&CK lookupCVE-2021-39135 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
Open ATT&CK lookup- Severity
- High
- CVSS
- 8.2 (3.1)
- Known Exploited
- No
- Published
Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
CNA and ADP enrichment extracted from CVE v5
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
CVSS vector scores
1 official scoreWe collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N1.85.8Primary CVE scoreVulnerability scoring details
Base CVSS 3.1 score
8.2HighVector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
Source materials
- CVE List V5 sourceCVE List V5
- https://www.npmjs.com/package/%40npmcli/arboristCVE reference · x_refsource_MISC
- https://github.com/npm/arborist/security/advisories/GHSA-gmw6-94gg-2rc2CVE reference · x_refsource_CONFIRM
- https://www.oracle.com/security-alerts/cpuoct2021.htmlCVE reference · x_refsource_MISC
- https://cert-portal.siemens.com/productcert/pdf/ssa-389290.pdfCVE reference · x_refsource_CONFIRM
Products and packages named in the record
CWE details
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
UNIX Symbolic Link (Symlink) Following
UNIX Symbolic Link (Symlink) Following represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
