CVE-2023-39332

Node.js 20: Various `node:fs` functions allow specifying paths as either strings or `Uint8Array` objects.

CVE-2023-39332 is fixed in 9 products on 2 platforms, first by Node.js 20 20.9.0, released October 24, 2023. It is not reported as exploited. Patch Radar priority: High.

HighFixed on 2 platforms
CVSS
9.8
Important
Exploitation
None reported
No vendor assessment
CISA KEV
Not listed
Not in the Known Exploited Vulnerabilities catalog
EPSS
0.0219
82nd percentile

Various `node:fs` functions allow specifying paths as either strings or `Uint8Array` objects. In Node.js environments, the `Buffer` class extends the `Uint8Array` class. Node.js prevents path traversal through strings (see CVE-2023-30584) and `Buffer` objects (see CVE-2023-32004), but not through non-`Buffer` `Uint8Array` objects. This is distinct from CVE-2023-32004 which only referred to `Buffer` objects. However, the vulnerability follows the same pattern using `Uint8Array` instead of `Buffer`. Please note that at the time this CVE was issued, the permission model is an experimental feature of Node.js.

Where it's fixed

ProductFixed inFixReleased
Windows apps
Node.js 20 20.9.0 Node.js 20 20.9.0 Oct 24, 2023
Linux
nodejs · RHEL 8 1:20.8.1-1.module+el8.9.0+20473+c4e3d824 RHSA-2023:7205 Nov 14, 2023
nodejs · almalinux 8 1:20.8.1-1.module_el8.9.0+3675+0258a6d9 ALSA-2023:7205 Nov 14, 2023
nodejs · ol 8 1:20.8.1-1.module+el8.9.0+90082+b6a613a6 ELSA-2023-7205 Nov 22, 2023
nodejs-devel · RHEL 8 1:20.8.1-1.module+el8.9.0+20473+c4e3d824 RHSA-2023:7205 Nov 14, 2023
nodejs-devel · almalinux 8 1:20.8.1-1.module_el8.9.0+3675+0258a6d9 ALSA-2023:7205 Nov 14, 2023
nodejs-devel · ol 8 1:20.8.1-1.module+el8.9.0+90082+b6a613a6 ELSA-2023-7205 Nov 22, 2023
nodejs-docs · RHEL 8 1:20.8.1-1.module+el8.9.0+20473+c4e3d824 RHSA-2023:7205 Nov 14, 2023
nodejs-docs · almalinux 8 1:20.8.1-1.module_el8.9.0+3675+0258a6d9 ALSA-2023:7205 Nov 14, 2023
nodejs-docs · ol 8 1:20.8.1-1.module+el8.9.0+90082+b6a613a6 ELSA-2023-7205 Nov 22, 2023
nodejs-full-i18n · RHEL 8 1:20.8.1-1.module+el8.9.0+20473+c4e3d824 RHSA-2023:7205 Nov 14, 2023
nodejs-full-i18n · almalinux 8 1:20.8.1-1.module_el8.9.0+3675+0258a6d9 ALSA-2023:7205 Nov 14, 2023
nodejs-full-i18n · ol 8 1:20.8.1-1.module+el8.9.0+90082+b6a613a6 ELSA-2023-7205 Nov 22, 2023
nodejs-nodemon · RHEL 8 0:3.0.1-1.module+el8.9.0+20473+c4e3d824 RHSA-2023:7205 Nov 14, 2023
nodejs-nodemon · almalinux 8 3.0.1-1.module_el8.9.0+3675+0258a6d9 ALSA-2023:7205 Nov 14, 2023
nodejs-nodemon · ol 8 0:3.0.1-1.module+el8.9.0+90082+b6a613a6 ELSA-2023-7205 Nov 22, 2023
nodejs-nodemon · rocky 8 0:3.0.1-1.module+el8.8.0+1459+02651ab6 RLSA-2023:7205 Nov 28, 2023
nodejs-packaging · RHEL 8 0:2021.06-4.module+el8.9.0+19519+e25b965a RHSA-2023:7205 Nov 14, 2023
nodejs-packaging · almalinux 8 2021.06-4.module_el8.9.0+3684+11b9e959 ALSA-2023:7205 Nov 14, 2023
nodejs-packaging · ol 8 0:2021.06-4.module+el8.9.0+90082+b6a613a6 ELSA-2023-7205 Nov 22, 2023
nodejs-packaging · rocky 8 0:2021.06-4.module+el8.7.0+1072+5b168780 RLSA-2023:7205 Nov 28, 2023
nodejs-packaging-bundler · RHEL 8 0:2021.06-4.module+el8.9.0+19519+e25b965a RHSA-2023:7205 Nov 14, 2023
nodejs-packaging-bundler · almalinux 8 2021.06-4.module_el8.9.0+3684+11b9e959 ALSA-2023:7205 Nov 14, 2023
nodejs-packaging-bundler · ol 8 0:2021.06-4.module+el8.9.0+90082+b6a613a6 ELSA-2023-7205 Nov 22, 2023
npm · RHEL 8 1:10.1.0-1.20.8.1.1.module+el8.9.0+20473+c4e3d824 RHSA-2023:7205 Nov 14, 2023
npm · almalinux 8 1:10.1.0-1.20.8.1.1.module_el8.9.0+3675+0258a6d9 ALSA-2023:7205 Nov 14, 2023
npm · ol 8 1:10.1.0-1.20.8.1.1.module+el8.9.0+90082+b6a613a6 ELSA-2023-7205 Nov 22, 2023

Patch Radar data is free to use with attribution. Terms and how to credit it.

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.