nodejs:20 security update

エラータID: AXSA:2024-7668:01

Release date: 
Thursday, April 11, 2024 - 17:18
Subject: 
nodejs:20 security update
Affected Channels: 
Asianux Server 8 for x86_64
Severity: 
High
Description: 

Node.js is a software development platform for building fast and scalable
network applications in the JavaScript programming language.

Security Fix(es):

* nodejs: vulnerable to timing variant of the Bleichenbacher attack against PKCS#1 v1.5 padding (Marvin) (CVE-2023-46809)
* nodejs: reading unprocessed HTTP request with unbounded chunk extension allows DoS attacks (CVE-2024-22019)
* nodejs: code injection and privilege escalation through Linux capabilities (CVE-2024-21892)
* nodejs: path traversal by monkey-patching buffer internals (CVE-2024-21896)
* nodejs: multiple permission model bypasses due to improper path traversal sequence sanitization (CVE-2024-21891)
* nodejs: improper handling of wildcards in --allow-fs-read and --allow-fs-write (CVE-2024-21890)
* nodejs: setuid() does not drop all privileges due to io_uring (CVE-2024-22017)

CVE-2023-46809
** RESERVED ** This candidate has been reserved by an organization or individual that will use it when announcing a new security problem. When the candidate has been publicized, the details for this candidate will be provided.
CVE-2024-21890
The Node.js Permission Model does not clarify in the documentation that wildcards should be only used as the last character of a file path. For example: ``` --allow-fs-read=/home/node/.ssh/*.pub ``` will ignore `pub` and give access to everything after `.ssh/`. This misleading documentation 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.
CVE-2024-21891
Node.js depends on multiple built-in utility functions to normalize paths provided to node:fs functions, which can be overwitten with user-defined implementations leading to filesystem permission model bypass through path traversal attack. 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.
CVE-2024-21892
On Linux, Node.js ignores certain environment variables if those may have been set by an unprivileged user while the process is running with elevated privileges with the only exception of CAP_NET_BIND_SERVICE. Due to a bug in the implementation of this exception, Node.js incorrectly applies this exception even when certain other capabilities have been set. This allows unprivileged users to inject code that inherits the process's elevated privileges.
CVE-2024-21896
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.
CVE-2024-22017
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.
CVE-2024-22019
A vulnerability in Node.js HTTP servers allows an attacker to send a specially crafted HTTP request with chunked encoding, leading to resource exhaustion and denial of service (DoS). The server reads an unbounded number of bytes from a single connection, exploiting the lack of limitations on chunk extension bytes. The issue can cause CPU and network bandwidth exhaustion, bypassing standard safeguards like timeouts and body size limits.

Modularity name: "nodejs"
Stream name: "20"

Solution: 

Update packages.

Additional Info: 

N/A

Download: 

SRPMS
  1. nodejs-nodemon-3.0.1-1.module+el8+1739+20253e11.src.rpm
    MD5: 01171975cffb46b60b318c6dbc4e9827
    SHA-256: f6d0b9f819b0d5a3e1b7e634adf6504f42a4cade4431229ea3d5be725d10735f
    Size: 339.85 kB
  2. nodejs-packaging-2021.06-4.module+el8+1739+20253e11.src.rpm
    MD5: acad2102403a3b415f2b6d36c3cd36c0
    SHA-256: c387758248bf6b34c1d9d2382fe36f6fbe0682965bb159f24cbb9f0e7e2881e9
    Size: 30.29 kB
  3. nodejs-20.11.1-1.module+el8+1739+20253e11.src.rpm
    MD5: 9e92009528b22e3d5ff6c7de507b0946
    SHA-256: a54615bc1dc81d3c975a734118d11197a0a6dd034e6403df30dcf0dea39a7855
    Size: 82.58 MB

Asianux Server 8 for x86_64
  1. nodejs-20.11.1-1.module+el8+1739+20253e11.x86_64.rpm
    MD5: c58a802e3832bd18382dda58c0a31f25
    SHA-256: 9b253a71035b5945caa9add50205c3a77850a4bdf5e31f050b7945d4bfcad1cd
    Size: 13.99 MB
  2. nodejs-debugsource-20.11.1-1.module+el8+1739+20253e11.x86_64.rpm
    MD5: 20caf987126d2333d027b0a993274b23
    SHA-256: f998c3689e169b2647d15a9df986764aafe52a00988ccde8116e33bd5f01c8ac
    Size: 11.27 MB
  3. nodejs-devel-20.11.1-1.module+el8+1739+20253e11.x86_64.rpm
    MD5: b7039bb9cd934937d794990932d2aeb6
    SHA-256: cc938ce6e69e819898db758ca10e29ae46c89e299f38cd26f2a01637cd210f1d
    Size: 260.08 kB
  4. nodejs-docs-20.11.1-1.module+el8+1739+20253e11.noarch.rpm
    MD5: 9291d983b789c97821ee346cc847e0e8
    SHA-256: cb6093ff3987afad8652bb8f4746e5b8e528833936704c582d0a0a08b7912f88
    Size: 10.45 MB
  5. nodejs-full-i18n-20.11.1-1.module+el8+1739+20253e11.x86_64.rpm
    MD5: 34f52e22a2c38871badf89090f583ed0
    SHA-256: 873cef982f20f4f89389dc143a69a64583a08328a1171a9eba9d958152273da2
    Size: 8.25 MB
  6. nodejs-nodemon-3.0.1-1.module+el8+1739+20253e11.noarch.rpm
    MD5: cf23a1a77fbcb07ff14449fe566938fb
    SHA-256: edd01d431ab5dcedfbe918a4f8935f42264361d41a1205416838ef1c265752d1
    Size: 281.66 kB
  7. nodejs-packaging-2021.06-4.module+el8+1739+20253e11.noarch.rpm
    MD5: f18b887720b2ae5f7da7cbaa198be0de
    SHA-256: 404068a88113e669b259a44f6d760fb439e6bfb42c6af8613469fb3f44e386a3
    Size: 24.14 kB
  8. nodejs-packaging-bundler-2021.06-4.module+el8+1739+20253e11.noarch.rpm
    MD5: 63e046ec2d5ed3010584dfdbd1f78907
    SHA-256: 39cea90589720b92b29380cd376d6085201a959db1ce0ffa237e473307a72f0d
    Size: 13.76 kB
  9. npm-10.2.4-1.20.11.1.1.module+el8+1739+20253e11.x86_64.rpm
    MD5: 81b3dc11835c77a4fefa0183d7e1c081
    SHA-256: 89a82a05f02d4694e6d2c8b072ef05fe0e665637f4739c299a9442214940065c
    Size: 2.12 MB