Skip to content

Commit 85a1407

Browse files
authored
Blog: add CVE summaries to oct 2026 sec release post (#9234)
The October 2026 security release post only listed the affected versions for each CVE. Add a summary describing each vulnerability, matching the format used in previous security release posts. Signed-off-by: RafaelGSS <rafael.nunu@hotmail.com>
1 parent 88b1243 commit 85a1407

1 file changed

Lines changed: 39 additions & 1 deletion

File tree

‎apps/site/pages/en/blog/vulnerability/october-2026-security-releases.md‎

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,62 +22,100 @@ This security release includes the following dependency updates to address publi
2222

2323
## dns.resolve truncates names containing NUL char (CVE-2026-105482) - (high)
2424

25+
A flaw in Node.js DNS resolution allows hostnames containing a NUL byte to be silently truncated by the `dns.resolve*()` functions and `dns.reverse()`. This is an incomplete fix of CVE-2026-48930, which only covered `dns.lookup()` and the `net`/`tls` host options.
26+
27+
Because the name is passed to c-ares as a C string, resolving `attacker.example\0.trusted.example` queries `attacker.example` and returns its records without any error. Applications that validate a hostname, for example against a domain allowlist, and then resolve it with `dns.resolve*()` can act on records for a different name than the one they validated.
28+
2529
This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
2630

2731
Thank you, to Hasan Flayyih Abdullah for reporting this vulnerability and thank you jasnell for fixing it.
2832

2933
## TLS certificate hostname bypass when the IP is written fullwidth digits (CVE-2026-105483) - (high)
3034

35+
A flaw in Node.js TLS hostname verification allows a certificate without a matching IP address SAN to authenticate a connection to an IPv4 address when the host is written with non-ASCII characters, such as fullwidth digits (`127.0.0.1`).
36+
37+
`tls.checkServerIdentity()` did not recognize such hosts as IP addresses, even though they normalize and resolve to a regular IPv4 address, and matched them against the certificate DNS names and Common Name instead. A certificate containing `DNS:127.0.0.1` or `DNS:*.0.0.1` could therefore be accepted for an IP endpoint it was not issued for. This is a regression introduced after the fix for CVE-2026-48618.
38+
3139
This vulnerability affects Node.js **26.x** and **24.x**.
3240

3341
Thank you, to Hasan Flayyih Abdullah for reporting this vulnerability and thank you jasnell for fixing it.
3442

3543
## TLS certificate hostname bypass when the host loosely resolves to an IP address (CVE-2026-106069) - (high)
3644

45+
A flaw in Node.js TLS hostname verification can cause a server certificate to be validated against a different IP address than the one the client connected to, when the host is a non-canonical IPv4 literal with a leading zero, such as `0127.0.0.1`.
46+
47+
`tls.checkServerIdentity()` normalizes the host following the WHATWG URL rules, which read a leading-zero octet as octal (`0127.0.0.1` becomes `87.0.0.1`), while the connection is made through the operating system resolver, which on some platforms such as macOS reads it as decimal (`127.0.0.1`). A server at the connected address can then be authenticated with a certificate issued for another IP address.
48+
3749
This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
3850

3951
Thank you, to anagnorisis2peripeteia for reporting this vulnerability and thank you mcollina for fixing it.
4052

4153
## Node.js Brotli decoder out-of-bounds write permits remote code execution (CVE-2026-111497) - (high)
4254

43-
A flaw in Node.js can cause Node.js Brotli decoder out-of-bounds write permits remote code execution.
55+
A flaw in the Brotli decoder bundled with Node.js allows malformed compressed input to write past the end of an internal decoder buffer.
56+
57+
An invalid block switch was reported as a temporary need for more input instead of a permanent format error, so the streaming decoder kept appending input bytes to an eight-byte internal buffer. An attacker who can supply Brotli data that an application decompresses with `node:zlib` can corrupt process memory, which can lead to a crash, disclosure of process memory, or remote code execution.
4458

4559
This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
4660

4761
Thank you, to OpenAI Codex Security - Khai Tran and Sylvie Mayer for reporting this vulnerability and thank you mcollina and aduh95 for fixing it.
4862

4963
## Keep-alive socket process a response that was written before the request was sent (CVE-2026-105481) - (medium)
5064

65+
A flaw in Node.js HTTP Agent connection reuse can cause a client to accept as valid a response that was sent before the client has sent the request. This is an incomplete fix of CVE-2026-48931.
66+
67+
The guard that destroys idle keep-alive sockets when unexpected data arrives only runs when the event loop polls for I/O. If an unsolicited response has already reached the socket but has not been read yet when the socket is handed to a new request, for example because the event loop was busy with synchronous work, the guard is removed without seeing it and the data is parsed as the response to the new request.
68+
5169
This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
5270

5371
Thank you, to Hasan Flayyih Abdullah for reporting this vulnerability and thank you jasnell for fixing it.
5472

5573
## Improper certificate validation for non-canonical IPv4 hostnames allows DNS SANs to authenticate IP endpoints (CVE-2026-106072) - (medium)
5674

75+
A flaw in Node.js TLS hostname verification allows a certificate with only a DNS SAN to authenticate an IP endpoint when the client connects using a non-canonical IPv4 spelling, such as `0177.0.0.1`, `0x7f.0.0.1`, `2130706433` or `127.1`.
76+
77+
`tls.checkServerIdentity()` did not classify these hosts as IP addresses, but normalized them to their canonical form and matched the result against the certificate DNS names. A certificate containing `DNS:127.0.0.1` and no `IP Address:127.0.0.1` SAN was therefore accepted, while the same certificate is correctly rejected for `127.0.0.1`. Exploitation requires a certificate with a numeric DNS SAN issued by a CA trusted by the client, and a platform resolver that accepts these spellings, such as glibc.
78+
5779
This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
5880

5981
Thank you, to br41ny for reporting this vulnerability and thank you mcollina for fixing it.
6082

6183
## crypto.randomUUID() and randomInt() entropy caches are saved into user-land startup snapshots and SEAs, so every process repeats the same values (CVE-2026-106074) - (medium)
6284

85+
A flaw in Node.js `crypto` causes the internal entropy caches used by `crypto.randomUUID()`, `crypto.randomUUIDv7()`, and `crypto.randomInt()` to be saved into user-land startup snapshots (`--build-snapshot`) and single executable applications built with `useSnapshot`.
86+
87+
If any of these functions, or an API that relies on them such as `URL.createObjectURL()`, is called while the snapshot is built, every process started from that snapshot returns the same values until the cache is refilled: up to 127 UUIDs and about 1,000 `randomInt()` values. Identifiers expected to be unique can collide across processes, and values issued by one process can be predicted by observing another.
88+
6389
This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
6490

6591
Thank you, to gesposito for reporting this vulnerability and thank you panva for fixing it.
6692

6793
## Node.js ZipFile returns attacker-controlled prefix bytes after failed ZIP header validation (CVE-2026-106070) - (low)
6894

95+
A flaw in the Node.js `zlib.ZipFile` API can cause it to return bytes that do not belong to the requested entry after the local and central header validation fails.
96+
97+
When `zipEntry.modified` is read on an archive whose local header does not match its central directory, either directly or while compacting the archive, the validation error is caught but the parsed local header is left cached without a content offset. A later content read then returns attacker-controlled bytes from the start of the file instead of rejecting the archive, and CRC-32 verification still passes because the attacker controls the central directory CRC. A Node.js-based scanner can therefore approve different content from what another ZIP implementation extracts from the same archive.
98+
6999
This vulnerability affects Node.js **26.x**.
70100

71101
Thank you, to startimeash for reporting this vulnerability and thank you mcollina for fixing it.
72102

73103
## Permission Model filesystem over-grant via wildcard radix lookup (CVE-2026-106071) - (low)
74104

105+
A flaw in Node.js Permission Model filesystem enforcement can grant access to paths that do not match a wildcard `--allow-fs-read` or `--allow-fs-write` rule.
106+
107+
When the requested path is shorter than the prefix of a wildcard grant, the radix tree lookup stops comparing early and treats the path as a match. For example, `--allow-fs-read=/etc/passwd.*` also allows reading `/etc/passwd`. This requires the wildcard grant to sit directly under the root of the permission tree, for example when it is the only grant for that scope. This is a different root cause from CVE-2026-58043.
108+
75109
This vulnerability affects Node.js **26.x**.
76110

77111
Thank you, to malikhamzaiqbal for reporting this vulnerability and thank you jasnell for fixing it.
78112

79113
## Permission Model bypass with fs.realpathSync (CVE-2026-106073) - (low)
80114

115+
A flaw in Node.js Permission Model filesystem enforcement leaves `fs.realpathSync()` without the required read permission checks. This is an incomplete fix of CVE-2026-21715, which only covered `fs.realpathSync.native()`.
116+
117+
As a result, code running under `--permission` with restricted `--allow-fs-read` can still use `fs.realpathSync()` to check file existence, resolve symlink targets, and enumerate filesystem paths outside of permitted directories.
118+
81119
This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
82120

83121
Thank you, to 0xoroot for reporting this vulnerability and thank you RafaelGSS for fixing it.

0 commit comments

Comments
 (0)