Node.js 20 and 1 other: Path Traversal: 'dir/../../filename'
CVE-2024-21896 is fixed in 20 products on 2 platforms, first by Node.js 20 20.11.1, released February 13, 2024. It is not reported as exploited. Patch Radar priority: High.
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.
Where it's fixed
| Product | Fixed in | Fix | Released |
|---|---|---|---|
| Windows apps | |||
| Node.js 20 | 20.11.1 | Node.js 20 20.11.1 | Feb 13, 2024 |
| Node.js 21 | 21.6.2 | Node.js 21 21.6.2 | Feb 13, 2024 |
| Linux | |||
| nodejs · RHEL 8 | 1:20.11.1-1.module+el8.9.0+21380+12032667 | RHSA-2024:1687 | Apr 8, 2024 |
| nodejs · RHEL 9 | 1:20.11.1-1.module+el9.3.0+21385+bac43d5a | RHSA-2024:1688 | Apr 8, 2024 |
| nodejs · almalinux 8 | 1:20.11.1-1.module_el8.9.0+3775+d8460d35 | ALSA-2024:1687 | Apr 8, 2024 |
| nodejs · almalinux 9 | 1:20.11.1-1.module_el9.3.0+88+29afeaa2 | ALSA-2024:1688 | Apr 8, 2024 |
| nodejs · ol 8 | 1:20.11.1-1.module+el8.9.0+90250+089ba5e1 | ELSA-2024-1687 | Apr 8, 2024 |
| nodejs · ol 9 | 1:20.11.1-1.module+el9.3.0+90254+3f4d3ee1 | ELSA-2024-1688 | Apr 8, 2024 |
| nodejs · rocky 8 | 1:20.11.1-1.module+el8.9.0+1776+addd4aec | RLSA-2024:1687 | May 6, 2024 |
| nodejs-devel · RHEL 8 | 1:20.11.1-1.module+el8.9.0+21380+12032667 | RHSA-2024:1687 | Apr 8, 2024 |
| nodejs-devel · RHEL 9 | 1:20.11.1-1.module+el9.3.0+21385+bac43d5a | RHSA-2024:1688 | Apr 8, 2024 |
| nodejs-devel · almalinux 8 | 1:20.11.1-1.module_el8.9.0+3775+d8460d35 | ALSA-2024:1687 | Apr 8, 2024 |
| nodejs-devel · almalinux 9 | 1:20.11.1-1.module_el9.3.0+88+29afeaa2 | ALSA-2024:1688 | Apr 8, 2024 |
| nodejs-devel · ol 8 | 1:20.11.1-1.module+el8.9.0+90250+089ba5e1 | ELSA-2024-1687 | Apr 8, 2024 |
| nodejs-devel · ol 9 | 1:20.11.1-1.module+el9.3.0+90254+3f4d3ee1 | ELSA-2024-1688 | Apr 8, 2024 |
| nodejs-docs · RHEL 8 | 1:20.11.1-1.module+el8.9.0+21380+12032667 | RHSA-2024:1687 | Apr 8, 2024 |
| nodejs-docs · RHEL 9 | 1:20.11.1-1.module+el9.3.0+21385+bac43d5a | RHSA-2024:1688 | Apr 8, 2024 |
| nodejs-docs · almalinux 8 | 1:20.11.1-1.module_el8.9.0+3775+d8460d35 | ALSA-2024:1687 | Apr 8, 2024 |
| nodejs-docs · almalinux 9 | 1:20.11.1-1.module_el9.3.0+88+29afeaa2 | ALSA-2024:1688 | Apr 8, 2024 |
| nodejs-docs · ol 8 | 1:20.11.1-1.module+el8.9.0+90250+089ba5e1 | ELSA-2024-1687 | Apr 8, 2024 |
| nodejs-docs · ol 9 | 1:20.11.1-1.module+el9.3.0+90254+3f4d3ee1 | ELSA-2024-1688 | Apr 8, 2024 |
| nodejs-full-i18n · RHEL 8 | 1:20.11.1-1.module+el8.9.0+21380+12032667 | RHSA-2024:1687 | Apr 8, 2024 |
| nodejs-full-i18n · RHEL 9 | 1:20.11.1-1.module+el9.3.0+21385+bac43d5a | RHSA-2024:1688 | Apr 8, 2024 |
| nodejs-full-i18n · almalinux 8 | 1:20.11.1-1.module_el8.9.0+3775+d8460d35 | ALSA-2024:1687 | Apr 8, 2024 |
| nodejs-full-i18n · almalinux 9 | 1:20.11.1-1.module_el9.3.0+88+29afeaa2 | ALSA-2024:1688 | Apr 8, 2024 |
| nodejs-full-i18n · ol 8 | 1:20.11.1-1.module+el8.9.0+90250+089ba5e1 | ELSA-2024-1687 | Apr 8, 2024 |
| nodejs-full-i18n · ol 9 | 1:20.11.1-1.module+el9.3.0+90254+3f4d3ee1 | ELSA-2024-1688 | Apr 8, 2024 |
| nodejs-nodemon · RHEL 8 | 0:3.0.1-1.module+el8.9.0+20473+c4e3d824 | RHSA-2024:1687 | Apr 8, 2024 |
| nodejs-nodemon · RHEL 9 | 0:3.0.1-1.module+el9.3.0.z+20478+84a9f781 | RHSA-2024:1688 | Apr 8, 2024 |
| nodejs-nodemon · almalinux 8 | 3.0.1-1.module_el8.9.0+3731+490e3ce5 | ALSA-2024:1687 | Apr 8, 2024 |
| nodejs-nodemon · almalinux 9 | 3.0.1-1.module_el9.3.0+47+c33bc288 | ALSA-2024:1688 | Apr 8, 2024 |
| nodejs-nodemon · ol 8 | 0:3.0.1-1.module+el8.9.0+90082+b6a613a6 | ELSA-2024-1687 | Apr 8, 2024 |
| nodejs-nodemon · ol 9 | 0:3.0.1-1.module+el9.3.0+90066+12d4a8d7 | ELSA-2024-1688 | Apr 8, 2024 |
| nodejs-nodemon · rocky 8 | 0:3.0.1-1.module+el8.8.0+1459+02651ab6 | RLSA-2024:1687 | May 6, 2024 |
| nodejs-nodemon · rocky 9 | 0:3.0.1-1.module+el9.6.0+32322+a8b1fd01 | RLSA-2024:1688 | May 6, 2024 |
| nodejs-packaging · RHEL 8 | 0:2021.06-4.module+el8.9.0+19519+e25b965a | RHSA-2024:1687 | Apr 8, 2024 |
| nodejs-packaging · RHEL 9 | 0:2021.06-4.module+el9.3.0+19518+63aad52d | RHSA-2024:1688 | Apr 8, 2024 |
| nodejs-packaging · almalinux 8 | 2021.06-4.module_el8.9.0+3684+11b9e959 | ALSA-2024:1687 | Apr 8, 2024 |
| nodejs-packaging · almalinux 9 | 2021.06-4.module_el9.3.0+48+1cf146a1 | ALSA-2024:1688 | Apr 8, 2024 |
| nodejs-packaging · ol 8 | 0:2021.06-4.module+el8.9.0+90082+b6a613a6 | ELSA-2024-1687 | Apr 8, 2024 |
| nodejs-packaging · ol 9 | 0:2021.06-4.module+el9.3.0+90066+12d4a8d7 | ELSA-2024-1688 | Apr 8, 2024 |
| nodejs-packaging · rocky 8 | 0:2021.06-4.module+el8.7.0+1072+5b168780 | RLSA-2024:1687 | May 6, 2024 |
| nodejs-packaging · rocky 9 | 0:2021.06-4.module+el9.5.0+31770+0da7192d | RLSA-2024:1688 | May 6, 2024 |
| nodejs-packaging-bundler · RHEL 8 | 0:2021.06-4.module+el8.9.0+19519+e25b965a | RHSA-2024:1687 | Apr 8, 2024 |
| nodejs-packaging-bundler · RHEL 9 | 0:2021.06-4.module+el9.3.0+19518+63aad52d | RHSA-2024:1688 | Apr 8, 2024 |
| nodejs-packaging-bundler · almalinux 8 | 2021.06-4.module_el8.9.0+3684+11b9e959 | ALSA-2024:1687 | Apr 8, 2024 |
| nodejs-packaging-bundler · almalinux 9 | 2021.06-4.module_el9.3.0+48+1cf146a1 | ALSA-2024:1688 | Apr 8, 2024 |
| nodejs-packaging-bundler · ol 8 | 0:2021.06-4.module+el8.9.0+90082+b6a613a6 | ELSA-2024-1687 | Apr 8, 2024 |
| nodejs-packaging-bundler · ol 9 | 0:2021.06-4.module+el9.3.0+90066+12d4a8d7 | ELSA-2024-1688 | Apr 8, 2024 |
| nodejs20 · amzn 2023 | 1:20.11.1-1.amzn2023.0.1 | ALAS2023-2024-544 | Feb 29, 2024 |
| nodejs20-debuginfo · amzn 2023 | 1:20.11.1-1.amzn2023.0.1 | ALAS2023-2024-544 | Feb 29, 2024 |
| nodejs20-debugsource · amzn 2023 | 1:20.11.1-1.amzn2023.0.1 | ALAS2023-2024-544 | Feb 29, 2024 |
| nodejs20-devel · amzn 2023 | 1:20.11.1-1.amzn2023.0.1 | ALAS2023-2024-544 | Feb 29, 2024 |
| nodejs20-docs · amzn 2023 | 1:20.11.1-1.amzn2023.0.1 | ALAS2023-2024-544 | Feb 29, 2024 |
| nodejs20-full-i18n · amzn 2023 | 1:20.11.1-1.amzn2023.0.1 | ALAS2023-2024-544 | Feb 29, 2024 |
| nodejs20-libs · amzn 2023 | 1:20.11.1-1.amzn2023.0.1 | ALAS2023-2024-544 | Feb 29, 2024 |
| nodejs20-libs-debuginfo · amzn 2023 | 1:20.11.1-1.amzn2023.0.1 | ALAS2023-2024-544 | Feb 29, 2024 |
| nodejs20-npm · amzn 2023 | 1:10.2.4-1.20.11.1.1.amzn2023.0.1 | ALAS2023-2024-544 | Feb 29, 2024 |
| npm · RHEL 8 | 1:10.2.4-1.20.11.1.1.module+el8.9.0+21380+12032667 | RHSA-2024:1687 | Apr 8, 2024 |
| npm · RHEL 9 | 1:10.2.4-1.20.11.1.1.module+el9.3.0+21385+bac43d5a | RHSA-2024:1688 | Apr 8, 2024 |
| npm · almalinux 8 | 1:10.2.4-1.20.11.1.1.module_el8.9.0+3775+d8460d35 | ALSA-2024:1687 | Apr 8, 2024 |
| npm · almalinux 9 | 1:10.2.4-1.20.11.1.1.module_el9.3.0+88+29afeaa2 | ALSA-2024:1688 | Apr 8, 2024 |
| npm · ol 8 | 1:10.2.4-1.20.11.1.1.module+el8.9.0+90250+089ba5e1 | ELSA-2024-1687 | Apr 8, 2024 |
| npm · ol 9 | 1:10.2.4-1.20.11.1.1.module+el9.3.0+90254+3f4d3ee1 | ELSA-2024-1688 | Apr 8, 2024 |
| v8-11.3-devel · amzn 2023 | 3:11.3.244.8-1.20.11.1.1.amzn2023.0.1 | ALAS2023-2024-544 | Feb 29, 2024 |
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.