Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

suse-cvrf логотип

SUSE-SU-2024:0643-1

Опубликовано: 28 фев. 2024
Источник: suse-cvrf

Описание

Security update for nodejs20

This update for nodejs20 fixes the following issues:

Update to 20.11.1: (security updates)

  • CVE-2024-21892: Code injection and privilege escalation through Linux capabilities (bsc#1219992).
  • CVE-2024-22019: http: Reading unprocessed HTTP request with unbounded chunk extension allows DoS attacks (bsc#1219993).
  • CVE-2024-21896: Path traversal by monkey-patching Buffer internals (bsc#1219994).j
  • CVE-2024-22017: setuid() does not drop all privileges due to io_uring (bsc#1219995).
  • CVE-2023-46809: Node.js is vulnerable to the Marvin Attack (timing variant of the Bleichenbacher attack against PKCS#1 v1.5 padding) (bsc#1219997).
  • CVE-2024-21891: Multiple permission model bypasses due to improper path traversal sequence sanitization (bsc#1219998).
  • CVE-2024-21890: Improper handling of wildcards in --allow-fs-read and --allow-fs-write (bsc#1219999).
  • CVE-2024-22025: Denial of Service by resource exhaustion in fetch() brotli decoding (bsc#1220014).
  • CVE-2024-24758: undici version 5.28.3 (bsc#1220017).
  • CVE-2024-24806: libuv version 1.48.0 (bsc#1219724).

Update to 20.11.0:

  • esm: add import.meta.dirname and import.meta.filename
  • fs: add c++ fast path for writeFileSync utf8
  • module: remove useCustomLoadersIfPresent flag
  • module: bootstrap module loaders in shadow realm
  • src: add --disable-warning option
  • src: create per isolate proxy env template
  • src: make process binding data weak
  • stream: use Array for Readable buffer
  • stream: optimize creation
  • test_runner: adds built in lcov reporter
  • test_runner: add Date to the supported mock APIs
  • test_runner, cli: add --test-timeout flag

Update to 20.10.0:

  • --experimental-default-type flag to flip module defaults
  • The new flag --experimental-detect-module can be used to automatically run ES modules when their syntax can be detected.
  • Added flush option in file system functions for fs.writeFile functions
  • Added experimental WebSocket client
  • vm: fix V8 compilation cache support for vm.Script. This fixes performance regression since v16.x when support for importModuleDynamically was added to vm.Script

Список пакетов

Container bci/nodejs:latest
nodejs20-20.11.1-150500.11.6.1
npm20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5
nodejs20-20.11.1-150500.11.6.1
nodejs20-devel-20.11.1-150500.11.6.1
nodejs20-docs-20.11.1-150500.11.6.1
npm20-20.11.1-150500.11.6.1
openSUSE Leap 15.5
corepack20-20.11.1-150500.11.6.1
nodejs20-20.11.1-150500.11.6.1
nodejs20-devel-20.11.1-150500.11.6.1
nodejs20-docs-20.11.1-150500.11.6.1
npm20-20.11.1-150500.11.6.1

Описание

Node.js versions which bundle an unpatched version of OpenSSL or run against a dynamically linked version of OpenSSL which are unpatched are vulnerable to the Marvin Attack - https://people.redhat.com/~hkario/marvin/, if PCKS #1 v1.5 padding is allowed when performing RSA descryption using a private key.


Затронутые продукты
Container bci/nodejs:latest:nodejs20-20.11.1-150500.11.6.1
Container bci/nodejs:latest:npm20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-devel-20.11.1-150500.11.6.1

Ссылки

Описание

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.


Затронутые продукты
Container bci/nodejs:latest:nodejs20-20.11.1-150500.11.6.1
Container bci/nodejs:latest:npm20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-devel-20.11.1-150500.11.6.1

Ссылки

Описание

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.


Затронутые продукты
Container bci/nodejs:latest:nodejs20-20.11.1-150500.11.6.1
Container bci/nodejs:latest:npm20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-devel-20.11.1-150500.11.6.1

Ссылки

Описание

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.


Затронутые продукты
Container bci/nodejs:latest:nodejs20-20.11.1-150500.11.6.1
Container bci/nodejs:latest:npm20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-devel-20.11.1-150500.11.6.1

Ссылки

Описание

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.


Затронутые продукты
Container bci/nodejs:latest:nodejs20-20.11.1-150500.11.6.1
Container bci/nodejs:latest:npm20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-devel-20.11.1-150500.11.6.1

Ссылки

Описание

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.


Затронутые продукты
Container bci/nodejs:latest:nodejs20-20.11.1-150500.11.6.1
Container bci/nodejs:latest:npm20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-devel-20.11.1-150500.11.6.1

Ссылки

Описание

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.


Затронутые продукты
Container bci/nodejs:latest:nodejs20-20.11.1-150500.11.6.1
Container bci/nodejs:latest:npm20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-devel-20.11.1-150500.11.6.1

Ссылки

Описание

A vulnerability in Node.js has been identified, allowing for a Denial of Service (DoS) attack through resource exhaustion when using the fetch() function to retrieve content from an untrusted URL. The vulnerability stems from the fact that the fetch() function in Node.js always decodes Brotli, making it possible for an attacker to cause resource exhaustion when fetching content from an untrusted URL. An attacker controlling the URL passed into fetch() can exploit this vulnerability to exhaust memory, potentially leading to process termination, depending on the system configuration.


Затронутые продукты
Container bci/nodejs:latest:nodejs20-20.11.1-150500.11.6.1
Container bci/nodejs:latest:npm20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-devel-20.11.1-150500.11.6.1

Ссылки

Описание

Undici is an HTTP/1.1 client, written from scratch for Node.js. Undici already cleared Authorization headers on cross-origin redirects, but did not clear `Proxy-Authentication` headers. This issue has been patched in versions 5.28.3 and 6.6.1. Users are advised to upgrade. There are no known workarounds for this vulnerability.


Затронутые продукты
Container bci/nodejs:latest:nodejs20-20.11.1-150500.11.6.1
Container bci/nodejs:latest:npm20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-devel-20.11.1-150500.11.6.1

Ссылки

Описание

libuv is a multi-platform support library with a focus on asynchronous I/O. The `uv_getaddrinfo` function in `src/unix/getaddrinfo.c` (and its windows counterpart `src/win/getaddrinfo.c`), truncates hostnames to 256 characters before calling `getaddrinfo`. This behavior can be exploited to create addresses like `0x00007f000001`, which are considered valid by `getaddrinfo` and could allow an attacker to craft payloads that resolve to unintended IP addresses, bypassing developer checks. The vulnerability arises due to how the `hostname_ascii` variable (with a length of 256 bytes) is handled in `uv_getaddrinfo` and subsequently in `uv__idna_toascii`. When the hostname exceeds 256 characters, it gets truncated without a terminating null byte. As a result attackers may be able to access internal APIs or for websites (similar to MySpace) that allows users to have `username.example.com` pages. Internal services that crawl or cache these user pages can be exposed to SSRF attacks if a malicious user chooses a long vulnerable username. This issue has been addressed in release version 1.48.0. Users are advised to upgrade. There are no known workarounds for this vulnerability.


Затронутые продукты
Container bci/nodejs:latest:nodejs20-20.11.1-150500.11.6.1
Container bci/nodejs:latest:npm20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-20.11.1-150500.11.6.1
SUSE Linux Enterprise Module for Web and Scripting 15 SP5:nodejs20-devel-20.11.1-150500.11.6.1

Ссылки
Уязвимость SUSE-SU-2024:0643-1