Skip to content

The permission model protects itself against path...

High severity Unreviewed Published Feb 20, 2024 to the GitHub Advisory Database • Updated May 1, 2024

Package

No package listedSuggest a package

Affected versions

Unknown

Patched versions

Unknown

Description

The permission model protects itself against path traversal attacks by calling path.resolve() on any paths given by the user. If the path is to be treated as a Buffer, the implementation uses Buffer.from() to obtain a Buffer from the result of path.resolve(). By monkey-patching Buffer internals, namely, Buffer.prototype.utf8Write, the application can modify the result of path.resolve(), which leads to a path traversal vulnerability.
This vulnerability affects all users using the experimental permission model in Node.js 20 and Node.js 21.
Please note that at the time this CVE was issued, the permission model is an experimental feature of Node.js.

References

Published by the National Vulnerability Database Feb 20, 2024
Published to the GitHub Advisory Database Feb 20, 2024
Last updated May 1, 2024

Severity

High
7.9
/ 10

CVSS base metrics

Attack vector
Local
Attack complexity
Low
Privileges required
Low
User interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None
CVSS:3.0/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N

Weaknesses

No CWEs

CVE ID

CVE-2024-21896

GHSA ID

GHSA-3q5r-g7hx-jv3c

Source code

No known source code

Dependabot alerts are not supported on this advisory because it does not have a package from a supported ecosystem with an affected and fixed version.

Learn more about GitHub language support

Checking history
See something to contribute? Suggest improvements for this vulnerability.