- -------------------------------------------------------------------------
Debian LTS Advisory DLA-3886-1 debian-lts@lists.debian.org
https://www.debian.org/lts/security/ Bastien Roucariès
September 14, 2024 https://wiki.debian.org/LTS
- -------------------------------------------------------------------------
Package : nodejs
Version : 12.22.12~dfsg-1~deb11u5
CVE ID : CVE-2023-30589 CVE-2023-30590 CVE-2023-32559 CVE-2023-46809
CVE-2024-22019 CVE-2024-22025 CVE-2024-27982 CVE-2024-27983
Node.js a JavaScript runtime environment that executes JavaScript code
outside a web browser (server side) was vulnerable.
CVE-2023-30589
The llhttp parser in the http module in Node does not strictly
use the CRLF sequence to delimit HTTP requests. This can lead to
HTTP Request Smuggling (HRS). The CR character (without LF) is
sufficient to delimit HTTP header fields in the llhttp parser.
According to RFC7230 section 3, only the CRLF sequence should
delimit each header-field.
CVE-2023-30590
The generateKeys() API function returned from
crypto.createDiffieHellman() only generates missing (or outdated)
keys, that is, it only generates a private key if none has been
set yet, but the function is also needed to compute the
corresponding public key after calling setPrivateKey(). However,
the documentation says this API call: "Generates private and
public Diffie-Hellman key values". The documented behavior is very
different from the actual behavior, and this difference could
easily lead to security issues.
CVE-2023-32559
A privilege escalation vulnerability exists in the experimental
policy mechanism.
The use of the deprecated API `process.binding()` can bypass
the policy mechanism by requiring internal modules and eventually
take advantage of `process.binding('spawn_sync')` run arbitrary
code, outside of the limits defined in a `policy.json` file
CVE-2023-46809
Node.js versions are vulnerable to the Marvin Attack,
if PCKS #1 v1.5 padding is allowed when performing RSA descryption
using a private key.
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.
CVE-2024-22025
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.
CVE-2024-27982
Malformed headers can lead to HTTP request smuggling. Specifically,
if a space is placed before a content-length header, it is not
interpreted correctly, enabling attackers to smuggle in a
second request within the body of the first.
CVE-2024-27983
An attacker can make the Node.js HTTP/2 server completely
unavailable by sending a small amount of HTTP/2 frames packets
with a few HTTP/2 frames inside. It is possible to leave some data
in nghttp2 memory after reset when headers with HTTP/2
CONTINUATION frame are sent to the server and then a TCP
connection is abruptly closed by the client triggering the
Http2Session destructor while header frames are still being
processed (and stored in memory) causing a race condition.
For Debian 11 bullseye, these problems have been fixed in version
12.22.12~dfsg-1~deb11u5.
We recommend that you upgrade your nodejs packages.
For the detailed security status of nodejs please refer to
its security tracker page at:
https://security-tracker.debian.org/tracker/nodejs
Further information about Debian LTS security advisories, how to apply
these updates to your system and frequently asked questions can be
found at: https://wiki.debian.org/LTS