Name | CVE-2023-23918 |
Description | A privilege escalation vulnerability exists in Node.js <19.6.1, <18.14.1, <16.19.1 and <14.21.3 that made it possible to bypass the experimental Permissions (https://nodejs.org/api/permissions.html) feature in Node.js and access non authorized modules by using process.mainModule.require(). This only affects users who had enabled the experimental permissions option with --experimental-policy. |
Source | CVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
References | DSA-5589-1 |
Debian Bugs | 1031834 |
Vulnerable and fixed packages
The table below lists information on source packages.
Source Package | Release | Version | Status |
---|
nodejs (PTS) | jessie | 0.10.29~dfsg-2 | vulnerable |
| stretch | 4.8.2~dfsg-1 | vulnerable |
| buster (security), buster, buster (lts) | 10.24.0~dfsg-1~deb10u4 | fixed |
| bullseye | 12.22.12~dfsg-1~deb11u4 | fixed |
| bullseye (security) | 12.22.12~dfsg-1~deb11u5 | fixed |
| bookworm | 18.19.0+dfsg-6~deb12u2 | fixed |
| bookworm (security) | 18.19.0+dfsg-6~deb12u1 | fixed |
| sid, trixie | 20.17.0+dfsg-2 | fixed |
The information below is based on the following data on fixed versions.
Package | Type | Release | Fixed Version | Urgency | Origin | Debian Bugs |
---|
nodejs | source | jessie | (unfixed) | end-of-life | | |
nodejs | source | stretch | (unfixed) | end-of-life | | |
nodejs | source | buster | (not affected) | | | |
nodejs | source | bullseye | (not affected) | | | |
nodejs | source | bookworm | 18.19.0+dfsg-6~deb12u1 | | DSA-5589-1 | |
nodejs | source | (unstable) | 18.19.0+dfsg-2 | | | 1031834 |
Notes
[bullseye] - nodejs <not-affected> (Permissions policy introduced in v16.x)
[buster] - nodejs <not-affected> (v10.x doesn't support policy manifests)
https://nodejs.org/en/blog/vulnerability/february-2023-security-releases/#node-js-permissions-policies-can-be-bypassed-via-process-mainmodule-high-cve-2023-23918
Only affects users enabling experimental permissions option with --experimental-policy.
https://github.com/nodejs/node/commit/af9140088621abd09016848f4526d66b7a81b9ba
https://github.com/nodejs/node/commit/9b7db62276e4a9c97aedf91daf38bf7b7d23fee4