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.
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
| Product | Fixed in | Fix | Released |
|---|---|---|---|
| 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.