Synopsis
The remote Amazon Linux 2023 host is missing a security update.
Description
It is, therefore, affected by multiple vulnerabilities as referenced in the ALAS2023-2026-3328 advisory.
A vulnerability in Node.js HTTP Agent handling allows a keep-alive socket to process a response that was written before the corresponding request was sent. This may cause incorrect response association and potentially lead to HTTP response confusion or unintended data exposure. (CVE-2026-105481)
A vulnerability in Node.js allows the `dns.resolve` function to improperly handle domain names containing null bytes, potentially causing domain name truncation and inconsistent hostname validation. This could allow applications relying on hostname validation to process unintended domain names. The issue affects Node.js 22.x, 24.x, and 26.x release lines. Upgrade to a patched version to address the vulnerability.
(CVE-2026-105482)
A vulnerability in Node.js TLS certificate hostname validation allows a hostname that loosely resolves to an IP address to bypass hostname verification. This may enable an attacker to impersonate a trusted endpoint and potentially facilitate man-in-the-middle attacks. (CVE-2026-106069)
A vulnerability in Node.js TLS certificate validation allows non-canonical IPv4 hostnames to be incorrectly matched against DNS Subject Alternative Name (SAN) entries in certificates. This may allow a certificate issued for a DNS name to authenticate an IP endpoint, potentially bypassing intended hostname validation. (CVE-2026-106072)
A vulnerability in Node.js causes the entropy caches used by `crypto.randomUUID()` and `crypto.randomInt()` to be preserved in user-land startup snapshots and Single Executable Applications (SEAs). As a result, multiple processes initialized from the same snapshot may generate repeated values, weakening randomness and potentially compromising security mechanisms that rely on unique or unpredictable values. (CVE-2026-106073)
A vulnerability in the Node.js Permission Model allows filesystem access restrictions to be bypassed through `fs.realpathSync()`. This may enable an application to access filesystem paths that should be restricted by the configured permission policies. (CVE-2026-106074)
undici is an HTTP client library for Node.js. In versions 4.0.0 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, its Agent dispatcher passes its constructor options through a JSON-based deep clone before forwarding them to each per-origin pool, and because JSON cannot represent functions, a caller- supplied tls option containing a checkServerIdentity callback is silently dropped before it reaches the TLS layer. As a result, a TLS peer whose certificate a custom checkServerIdentity was written to reject, but which passes Node's default hostname and chain checks, is silently accepted. Because Agent is the default dispatcher behind request, fetch, and setGlobalDispatcher, this affects the path most applications use, and EnvHttpProxyAgent is affected on its direct and no-proxy routes as well, while only applications that pass a function-valued tls option such as a custom checkServerIdentity for certificate or public-key pinning are at risk. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, which preserve the tls option outside the JSON clone so custom verification callbacks are forwarded unchanged, and users should upgrade to one of those versions or later. As a workaround, pass the TLS options through connect instead of tls, or for proxied destinations use requestTls and proxyTls. (CVE-2026-109383)
undici is an HTTP client library for Node.js. In versions 6.23.0 through 6.29.0, 7.18.0 through 7.30.0, and 8.0.0 through 8.12.1, its fetch() implementation crashes the Node.js process when a malicious server returns a response with more than five content codings and closes the connection before sending the body.
undici rejects such responses because of a content-encoding limit, but it created the internal response stream before that check and returned without attaching an error listener or aborting the request, so the early close surfaces a content-length mismatch on the orphaned stream, which Node.js treats as an unhandled error and terminates the process. A remote, unauthenticated server can trigger this with a single response, even when the application correctly catches the fetch() rejection, resulting in a denial of service. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, and users should upgrade to one of those versions or later. There is no workaround. (CVE-2026-109869)
undici is an HTTP client library for Node.js. In versions 6.5.0 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, its EventSource client can be driven to exhaust process memory by a malicious or compromised Server-Sent Events peer. By sending millions of tiny completed data fields with no blank event separator, or a single unfinished line split across many chunks, the parser retains a growing amount of per-field and per-chunk state that the byte-based maxEventSize and maxResponseSize limits do not bound, and because maxResponseSize is enforced on the compressed body before decompression, a small compressed response can expand into enough retained memory to terminate the process. An application only needs to maintain an EventSource connection to an untrusted peer, which controls only the response, and availability is the only impact. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, which bound the retained parser state independently of the byte limits, and users should upgrade to one of those versions or later. There is no workaround. (CVE-2026-109924)
undici is an HTTP client library for Node.js. In versions 5.15.0 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, its WebSocket client, including the bundled WebSocket exposed by Node.js, can be driven to exhaust process memory by a malicious or compromised WebSocket server. For every PING frame received, the client automatically writes a PONG response and ignores the backpressure signal from the socket write, so a server that streams small PING frames while never reading the client's PONGs makes the outbound write queue and heap grow without bound until the Node.js process runs out of memory and terminates. The attack is remote and unauthenticated, needs only a normal WebSocket connection, and is asymmetric, since small inbound PINGs produce a much larger retained outbound queue, with availability the only impact. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, which pause WebSocket frame parsing when the automatic PONG response hits socket backpressure and resume on drain, bounding the outbound queue, and users should upgrade to one of those versions or later. There is no workaround.
(CVE-2026-109932)
undici is an HTTP client library for Node.js. In versions 4.2.1 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, the client process crashes when a TLS 1.2 server renegotiates after the connection is established and presents a different, CA-trusted certificate whose hostname does not match the requested host. Node.js re-runs hostname verification on the renegotiated handshake and destroys the socket with a certificate-altname error, but undici's established-socket error handler asserted that this error code could never occur, so the peer-controlled error became an uncaught assertion that terminates the Node.js process, affecting both the HTTP/1.1 and HTTP/2 paths. A malicious or compromised HTTPS endpoint reached through undici or the global fetch() can crash the client with a single server-initiated renegotiation, taking down all in-flight requests and background work in the process, and exploitation needs no CA compromise because the attacker controls the endpoint and can present two ordinary valid certificates. Only TLS 1.2 is affected, since TLS 1.3 does not support renegotiation. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, and users should upgrade to one of those versions or later. As a workaround, restrict outbound connections to TLS 1.3 so renegotiation cannot occur, when the target endpoints support it. (CVE-2026-87018)
Tenable has extracted the preceding description block directly from the tested product security advisory.
Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version number.
Solution
Run 'dnf update nodejs22 --releasever 2023.12.20261026' or or 'dnf update --advisory ALAS2023-2026-3328 --releasever 2023.12.20261026' to update your system.
Plugin Details
File Name: al2023_ALAS2023-2026-3328.nasl
Agent: unix
Supported Sensors: Nessus Agent, Continuous Assessment, Nessus
Risk Information
Vector: CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:N
Vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Temporal Vector: CVSS:3.0/E:U/RL:O/RC:C
Vulnerability Information
CPE: cpe:/o:amazon:linux:2023, p-cpe:/a:amazon:linux:nodejs22-debuginfo, p-cpe:/a:amazon:linux:nodejs22-debugsource, p-cpe:/a:amazon:linux:nodejs22-devel, p-cpe:/a:amazon:linux:nodejs22-docs, p-cpe:/a:amazon:linux:nodejs22-full-i18n, p-cpe:/a:amazon:linux:nodejs22-libs-debuginfo, p-cpe:/a:amazon:linux:nodejs22-libs, p-cpe:/a:amazon:linux:nodejs22-npm, p-cpe:/a:amazon:linux:nodejs22, p-cpe:/a:amazon:linux:v8-12.4-devel
Required KB Items: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list
Exploit Ease: No known exploits are available
Patch Publication Date: 10/24/2026
Vulnerability Publication Date: 10/15/2026
Reference Information
CVE: CVE-2026-105481, CVE-2026-105482, CVE-2026-106069, CVE-2026-106072, CVE-2026-106073, CVE-2026-106074, CVE-2026-109383, CVE-2026-109869, CVE-2026-109924, CVE-2026-109932, CVE-2026-87018