CVE-2021-39134 Information
Description
@npmcli/arborist the library that calculates dependency trees and manages the node_modules folder hierarchy for the npm command line interface aims to guarantee that package dependency contracts will be met and the extraction of package contents will always be performed into the expected folder. This is in part accomplished by resolving dependency specifiers defined in package.json manifests for dependencies with a specific name and nesting folders to resolve conflicting dependencies. When multiple dependencies differ only in the case of their name Arborist’s internal data structure saw them as separate items that could coexist within the same level in the node_modules hierarchy. However on case-insensitive file systems (such as macOS and Windows) this is not the case. Combined with a symlink dependency such as file:/some/path this allowed an attacker to create a situation in which arbitrary contents could be written to any location on the filesystem. For example a package pwn-a could define a dependency in their package.json file such as `oo\
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Reference
https://github.com/npm/arborist/security/advisories/GHSA-2h3h-q99f-3fhc https://www.npmjs.com/package/@npmcli/arborist https://www.oracle.com/security-alerts/cpuoct2021.html https://cert-portal.siemens.com/productcert/pdf/ssa-389290.pdf
Attack Complexity
LOW
Privileges Required
NONE
User Interaction Required
NONE
Scope
REQUIRED
Confidentiality Impact
UNCHANGED
Integrity Impact
HIGH
Availability Impact
HIGH
Base Score
HIGH
Base Severity
7.8
Share on: