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.
History

Tue, 27 Aug 2024 17:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-27

cve-icon MITRE

Status: PUBLISHED

Assigner: hackerone

Published: 2024-02-20T01:31:08.176Z

Updated: 2024-08-27T15:48:13.167Z

Reserved: 2024-01-03T01:04:06.539Z

Link: CVE-2024-21896

cve-icon Vulnrichment

Updated: 2024-08-01T22:35:33.412Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2024-02-20T02:15:50.770

Modified: 2024-08-27T16:35:07.720

Link: CVE-2024-21896

cve-icon Redhat

Severity : Important

Publid Date: 2024-02-19T00:00:00Z

Links: CVE-2024-21896 - Bugzilla