Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 936204 (CVE-2024-22018, CVE-2024-22020, CVE-2024-36137, CVE-2024-37372) - <net-libs/nodejs-{18.20.4, 20.15.1,22.4.1}: Multiple Vulnerabilities
Summary: <net-libs/nodejs-{18.20.4, 20.15.1,22.4.1}: Multiple Vulnerabilities
Status: RESOLVED FIXED
Alias: CVE-2024-22018, CVE-2024-22020, CVE-2024-36137, CVE-2024-37372
Product: Gentoo Security
Classification: Unclassified
Component: Vulnerabilities (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo Security
URL:
Whiteboard: B2 [glsa+]
Keywords:
Depends on: 936254
Blocks:
  Show dependency tree
 
Reported: 2024-07-17 08:55 UTC by Hans de Graaff
Modified: 2025-05-17 08:06 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hans de Graaff gentoo-dev Security 2024-07-17 08:55:05 UTC
## Bypass network import restriction via data URL (CVE-2024-22020) - (Medium)

A security flaw in Node.js allows a bypass of network import restrictions.

By embedding non-network imports in data URLs, an attacker can execute arbitrary code, compromising system security.

Verified on various platforms, the vulnerability is mitigated by forbidding data URLs in network imports.

Exploiting this flaw can violate network import security, posing a risk to developers and servers.

Impact:

- This vulnerability affects all users in active release lines: 22.x, 20.x, 18.x

Thank you, to dittyroma for reporting this vulnerability and thank you RafaelGSS for fixing it.

## fs.fchown/fchmod bypasses permission model (CVE-2024-36137) - (Low)

A vulnerability has been identified in Node.js, affecting users of the experimental
permission model when the `--allow-fs-write` flag is used.

Node.js Permission Model do not operate on file descriptors, however, operations such
as `fs.fchown` or `fs.fchmod` can use a "read-only" file descriptor to change the
owner and permissions of a file.

This vulnerability affects all users using the experimental permission model in Node.js 20 and Node.js 22.

Please note that at the time this CVE was issued, the permission model is an experimental feature of Node.js.

Impact:

- This vulnerability affects all users in active release lines: 22.x, 20.x

Thank you, to 4xpl0r3r for reporting this vulnerability and thank you RafaelGSS for fixing it.

## fs.lstat bypasses permission model (CVE-2024-22018) - (Low)

A vulnerability has been identified in Node.js, affecting users of the experimental permission model when
the `--allow-fs-read` flag is used.
This flaw arises from an inadequate permission model that fails to restrict file stats through the
`fs.lstat` API. As a result, malicious actors can retrieve stats from files that they do not have explicit read access to.

This vulnerability affects all users using the experimental permission model in Node.js 20 and Node.js 22.

Please note that at the time this CVE was issued, the permission model is an experimental feature of Node.js.

Impact:

- This vulnerability affects all users in active release lines: 22.x, 20.x

Thank you, to haxatron1 for reporting this vulnerability and thank you RafaelGSS for fixing it.

## Permission model improperly processes UNC paths (CVE-2024-37372) - (low)

The Permission Model assumes that any path starting with two backslashes \\ has a four-character prefix that can be ignored, which is not always true. This subtle bug leads to vulnerable edge cases.

This vulnerability affects Windows users of the Node.js Permission Model in version v22.x and v20.x

Impact:

- This vulnerability affects all users in active release lines: 22.x, 20.x

Thank you, to tniessen for reporting this vulnerability and thank you RafaelGSS for fixing it.

## Downloads and release details

- [Node.js v18.20.4](/blog/release/v18.20.4/)
- [Node.js v20.15.1](/blog/release/v20.15.1/)
- [Node.js v22.4.1](/blog/release/v22.4.1/)
Comment 1 Hans de Graaff gentoo-dev Security 2024-12-14 08:19:01 UTC
commit 967e6f4b3c6eccd8ba1691371413cd2aa4690b0a
Author: William Hubbs <williamh@gentoo.org>
Date:   Mon Aug 19 16:23:34 2024 -0500

    net-libs/nodejs: drop 22.3.0, 22.4.0, 22.5.1
    
    Signed-off-by: William Hubbs <williamh@gentoo.org>

commit 4fe3848c24e1238204bc713bd86c57dac59dbe84
Author: William Hubbs <williamh@gentoo.org>
Date:   Mon Aug 19 16:18:39 2024 -0500

    net-libs/nodejs: drop 20.14.0, 20.15.0
    
    Signed-off-by: William Hubbs <williamh@gentoo.org>

commit a6ffacdbf51af671ffc19b6f635fd720949a7dd8
Author: William Hubbs <williamh@gentoo.org>
Date:   Mon Aug 19 16:13:26 2024 -0500

    net-libs/nodejs: drop 18.20.3
    
    Signed-off-by: William Hubbs <williamh@gentoo.org>
Comment 2 Larry the Git Cow gentoo-dev 2025-05-14 14:44:54 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/data/glsa.git/commit/?id=bd1a2640ccf5e62255777408273d6e65a893a6b7

commit bd1a2640ccf5e62255777408273d6e65a893a6b7
Author:     GLSAMaker <glsamaker@gentoo.org>
AuthorDate: 2025-05-14 14:44:20 +0000
Commit:     Hans de Graaff <graaff@gentoo.org>
CommitDate: 2025-05-14 14:44:48 +0000

    [ GLSA 202505-11 ] Node.js: Multiple Vulnerabilities
    
    Bug: https://bugs.gentoo.org/916513
    Bug: https://bugs.gentoo.org/924704
    Bug: https://bugs.gentoo.org/928532
    Bug: https://bugs.gentoo.org/936204
    Signed-off-by: GLSAMaker <glsamaker@gentoo.org>
    Signed-off-by: Hans de Graaff <graaff@gentoo.org>

 glsa-202505-11.xml | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)
Comment 3 cmwatts 2025-05-17 00:16:18 UTC
This GLSA (202505-11) appears to require NodeJS 22, when non-vulnerable 18.X and 20.X releases are available. Specific to these items are:

>=net-libs/nodejs-18.20.4
>=net-libs/nodejs-20.15.1

as well as the noted >=net-libs/nodejs-22.4.1

Will it be possible to correct the GLSA to show all non-vulnerable versions and not just the 22.X nodejs?

Thanks!
Comment 4 Hans de Graaff gentoo-dev Security 2025-05-17 08:00:49 UTC
(In reply to cmwatts from comment #3)

> Will it be possible to correct the GLSA to show all non-vulnerable versions
> and not just the 22.X nodejs?

Unfortunately not since nodejs uses a single slot for all these versions and this cannot be expressed in the GLSA (and its tools).
Comment 5 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-05-17 08:06:02 UTC
Let's carry on in bug 955981.