CVE-2024-22017
nodejs: setuid() does not drop all privileges due to io_uring
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
1Exploited in Wild
-Decision
Descriptions
setuid() does not affect libuv's internal io_uring operations if initialized before the call to setuid().
This allows the process to perform privileged operations despite presumably having dropped such privileges through a call to setuid().
This vulnerability affects all users using version greater or equal than Node.js 18.18.0, Node.js 20.4.0 and Node.js 21.
setuid() no afecta las operaciones io_uring internas de libuv si se inicializa antes de la llamada a setuid(). Esto permite que el proceso realice operaciones privilegiadas a pesar de haber perdido dichos privilegios mediante una llamada a setuid(). Esta vulnerabilidad afecta a todos los usuarios que utilizan una versión mayor o igual a Node.js 18.18.0, Node.js 20.4.0 y Node.js 21.
A flaw was found in Node.js, where the setuid() does not affect libuv's internal io_uring operations if initialized before the call to setuid(). This issue allows the process to perform privileged operations despite presumably having dropped such privileges through a call to setuid().
setuid() does not affect libuv's internal io_uring operations if initialized before the call to setuid(). This allows the process to perform privileged operations despite presumably having dropped such privileges through a call to setuid(). This vulnerability affects all users using version greater or equal than Node.js 18.18.0, Node.js 20.4.0 and Node.js 21.
Multiple vulnerabilities have been discovered in Node.js, the worst of which could lead to execution of arbitrary code. Versions greater than or equal to 22.4.1 are affected.
CVSS Scores
SSVC
- Decision:Track*
Timeline
- 2024-01-04 CVE Reserved
- 2024-03-19 CVE Published
- 2025-01-12 First Exploit
- 2025-04-30 CVE Updated
- 2025-07-04 EPSS Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
CWE
- CWE-250: Execution with Unnecessary Privileges
- CWE-269: Improper Privilege Management
CAPEC
References (6)
URL | Tag | Source |
---|---|---|
http://www.openwall.com/lists/oss-security/2024/03/11/1 |
|
|
https://hackerone.com/reports/2170226 | ||
https://security.netapp.com/advisory/ntap-20240517-0007 |
|
URL | Date | SRC |
---|---|---|
https://github.com/SpiralBL0CK/cve-2024-22017_to_test | 2025-01-12 |
URL | Date | SRC |
---|
URL | Date | SRC |
---|---|---|
https://access.redhat.com/security/cve/CVE-2024-22017 | 2024-04-08 | |
https://bugzilla.redhat.com/show_bug.cgi?id=2265727 | 2024-04-08 |
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 4.0 < 4.* Search vendor "NodeJS" for product "Node" and version " >= 4.0 < 4.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 5.0 < 5.* Search vendor "NodeJS" for product "Node" and version " >= 5.0 < 5.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 6.0 < 6.* Search vendor "NodeJS" for product "Node" and version " >= 6.0 < 6.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 7.0 < 7.* Search vendor "NodeJS" for product "Node" and version " >= 7.0 < 7.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 8.0 < 8.* Search vendor "NodeJS" for product "Node" and version " >= 8.0 < 8.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 9.0 < 9.* Search vendor "NodeJS" for product "Node" and version " >= 9.0 < 9.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 10.0 < 10.* Search vendor "NodeJS" for product "Node" and version " >= 10.0 < 10.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 11.0 < 11.* Search vendor "NodeJS" for product "Node" and version " >= 11.0 < 11.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 12.0 < 12.* Search vendor "NodeJS" for product "Node" and version " >= 12.0 < 12.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 13.0 < 13.* Search vendor "NodeJS" for product "Node" and version " >= 13.0 < 13.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 14.0 < 14.* Search vendor "NodeJS" for product "Node" and version " >= 14.0 < 14.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 15.0 < 15.* Search vendor "NodeJS" for product "Node" and version " >= 15.0 < 15.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 16.0 < 16.* Search vendor "NodeJS" for product "Node" and version " >= 16.0 < 16.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 17.0 < 17.* Search vendor "NodeJS" for product "Node" and version " >= 17.0 < 17.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 19.0 < 19.* Search vendor "NodeJS" for product "Node" and version " >= 19.0 < 19.*" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 20.0.0 < 20.11.1 Search vendor "NodeJS" for product "Node" and version " >= 20.0.0 < 20.11.1" | en |
Affected
| ||||||
NodeJS Search vendor "NodeJS" | Node Search vendor "NodeJS" for product "Node" | >= 21.0.0 < 21.6.2 Search vendor "NodeJS" for product "Node" and version " >= 21.0.0 < 21.6.2" | en |
Affected
|