[security - high] nodejs:24 security, bug fix, and enhancement update

エラータID: AXSA:2026-2234:01

Release date: 
Monday, November 2, 2026 - 23:48
Subject: 
[security - high] nodejs:24 security, bug fix, and enhancement update
Affected Channels: 
MIRACLE LINUX 9 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):

* ip-address: ip-address: Denial of Service via unbounded IPv6 address parsing (CVE-2026-101911)
* brace-expansion: brace-expansion: Denial of Service via uncontrolled recursion in nested brace patterns (CVE-2026-102278)
* brace-expansion: brace-expansion: Denial of Service via crafted brace patterns (CVE-2026-102277)
* brace-expansion: brace-expansion: Denial of Service via stack exhaustion from crafted brace patterns (CVE-2026-102276)
* brotli: Out-of-Bounds Write in Google Brotli Decoder (CVE-2026-111497)
* nodejs: nodejs: TLS certificate hostname bypass via fullwidth-digit IP hostnames (CVE-2026-105483)
* nodejs: nodejs: TLS certificate hostname bypass via non-canonical IP hostnames (CVE-2026-106069)
* nodejs: nodejs: dns.resolve truncates hostnames containing a NUL character (CVE-2026-105482)
* nodejs: nodejs: predictable random values via snapshot entropy cache reuse (CVE-2026-106074)
* nodejs: nodejs: Permission model bypass via wildcard path matching flaw (CVE-2026-106071)
* nodejs: nodejs: Response desynchronization via improper HTTP keep-alive connection reuse (CVE-2026-105481)
* nodejs: Node.js: Filesystem read permission bypass via fs.realpathSync() (CVE-2026-106073)
* nodejs: nodejs: Authentication bypass via non-canonical IPv4 hostname verification (CVE-2026-106072)

Bug Fix(es) and Enhancement(s):

* nodejs:24/nodejs: Rebase to the latest Node.js 24 release [rhel-9.8.z] (JIRA:RHEL-293233)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

CVE-2026-101911
ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Prior to 10.7.1, the Address6 constructor, Address6.isValid, and parse code in src/ipv6.ts accept unbounded strings and expand invalid characters through RE_BAD_CHARACTERS into large diagnostics. Material impact occurs only when an application accepts a very large attacker-controlled field and passes it to Address6 parsing without an earlier length bound. Common URL and header limits, and common body-parser defaults, generally constrain the effect; common defaults typically exclude 32 MiB fields. Megabyte-scale fields can cause a synchronous stall and high transient memory use, approximately 16 MiB can trigger an invalid string length exception, and process termination occurs at approximately 32 MiB. The affected entry points include Address6.isValid and construction paths that reach parse. This issue is fixed in version 10.7.1.
CVE-2026-102276
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.19, 2.1.5, 3.0.7, and 5.0.10, crafted brace patterns can exhaust the native stack in parseCommaParts because parseCommaParts recursively processes the remainder once per brace group and uses push.apply to pass every element of a very large comma-part array as a function argument. Patterns containing many comma-separated brace groups trigger the recursive path, while the large array triggers the argument-array path without deep recursion. These paths cause recursive and argument-array native stack exhaustion before max or maxLength can limit output, potentially terminating the Node.js process in a process-terminating denial of service. This issue is fixed in versions 1.1.19, 2.1.5, 3.0.7, and 5.0.10.
CVE-2026-102277
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.21, 2.1.7, 3.0.9, and 5.0.12, the expand function handles untrusted {a},b}-shaped patterns with many trailing closing braces by restarting its scan once for each trailing closing brace. The successive full-input rescans with linear working-string growth cause quadratic CPU time and memory pressure that can block the Node.js event loop. The process eventually recovers, making the impact a recoverable CPU denial of service. This issue is fixed in versions 1.1.21, 2.1.7, 3.0.9, and 5.0.12.
CVE-2026-102278
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.20, 2.1.6, 3.0.8, and 5.0.11, deeply nested brace groups cause expand_() to recurse once per nesting level at comma-member and single-set expansion sites, exhausting the native stack before output limits can apply and potentially terminating the Node.js process. expand_ performs uncontrolled recursion for nested brace alternatives and single-part sets. deeply nested brace groups supplied as an untrusted pattern. expand_ is affected. expand is affected. Comma members is affected. Single set is affected. native stack exhaustion during nested sub-expansion. process-terminating denial of service. This issue is fixed in versions 1.1.20, 2.1.6, 3.0.8, and 5.0.11.
CVE-2026-105481
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. 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. This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
CVE-2026-105482
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. 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. This vulnerability affects Node.js 26.x, 24.x, and 22.x.
CVE-2026-105483
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`). `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. This vulnerability affects Node.js **26.x** and **24.x**.
CVE-2026-106069
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`. `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. This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
CVE-2026-106071
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. 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. This vulnerability affects Node.js **26.x**.
CVE-2026-106072
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`. `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. This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
CVE-2026-106073
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()`. 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. This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
CVE-2026-106074
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`. 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. This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.
CVE-2026-111497
A buffer overflow vulnerability in the Brotli decoder (c/dec/decode.c) in Google Brotli versions 1.0.3 through 1.2.0 on all platforms allows a remote unauthenticated attacker to corrupt adjacent decoder state memory, disclose sensitive memory contents, cause a denial of service, or potentially execute arbitrary code using a crafted Brotli-compressed stream. Users need to update any Brotli libraries or binaries between 1.0.3 through 1.2.0 to the latest available version: 1.0.10 or 1.1.1 or 1.2.1.

Modularity name: "nodejs"
Stream name: "24"

Solution: 

Update packages.

Additional Info: 

N/A

Download: 

SRPMS
  1. nodejs-nodemon-3.1.14-3.module+el9+1210+3f69c9e1.src.rpm
    MD5: 09085dfa6ae2a814c940ed37f45cead1
    SHA-256: 47c72e97a5752fd211d216aaf2cc5bb2523b0d7126f9edbe6b9da1c2423e9ba5
    Size: 462.94 kB
  2. nodejs-packaging-2021.06-6.module+el9+1210+3f69c9e1.src.rpm
    MD5: 3b6dc306dffb29691f1fb697cc5001a3
    SHA-256: bbcbfe60164347da0449c7e0f33d1644a03d979991a3e5f441f3f8adc6f97c7d
    Size: 25.41 kB
  3. nodejs-24.22.1-3.module+el9+1210+3f69c9e1.src.rpm
    MD5: 6c6e3fce23f432682faeb79b150f7eea
    SHA-256: af48cb37d8ff98fa2ea080e0af7d9c11d3d41babc75e05ddcfd1de21d7ac7a6e
    Size: 102.08 MB

Asianux Server 9 for x86_64
  1. nodejs-24.22.1-3.module+el9+1210+3f69c9e1.x86_64.rpm
    MD5: 8a47d1e12dfc39e6ad14cb4d66e4cd27
    SHA-256: be23d0f420de2d894006c57926fdf2954a5d8c1debff51b98873d4c8ad1d1ccc
    Size: 70.73 kB
  2. nodejs-debugsource-24.22.1-3.module+el9+1210+3f69c9e1.x86_64.rpm
    MD5: bd10214ad81ac627903af7959e665f86
    SHA-256: dcfd08d4978cad8821be9da35246755fbc70d076d8984a2259bdb017c1b2734d
    Size: 21.34 MB
  3. nodejs-devel-24.22.1-3.module+el9+1210+3f69c9e1.x86_64.rpm
    MD5: 5677911793b005bf7bb217dbc9220838
    SHA-256: 22956557bfa716f6dd359dbc63c9a6dc00474561695372cf397fc279d3e42d6b
    Size: 336.75 kB
  4. nodejs-docs-24.22.1-3.module+el9+1210+3f69c9e1.noarch.rpm
    MD5: de2215a186e3f661d9839d9aef3a7139
    SHA-256: 6ed59905655f6a0d6e604482bd133a335381e4e4b1a8533e83bd63e3611398d2
    Size: 5.50 MB
  5. nodejs-full-i18n-24.22.1-3.module+el9+1210+3f69c9e1.x86_64.rpm
    MD5: 3f7bd3a641540fc4e4e720566c97ff3e
    SHA-256: 097989db2d0163a969a7729782dce1b232bdcef8b311495056ee8feab041f030
    Size: 8.87 MB
  6. nodejs-libs-24.22.1-3.module+el9+1210+3f69c9e1.x86_64.rpm
    MD5: 2306b4a55eaa5fadcb4e4b88bf9787a1
    SHA-256: 1466b003cf0f535950d9a52c1a045d35e10aa800b7bd1dc2ad78ba2a2253152a
    Size: 23.86 MB
  7. nodejs-nodemon-3.1.14-3.module+el9+1210+3f69c9e1.noarch.rpm
    MD5: 07e01452671f5a31fd1820e147df0031
    SHA-256: b55e0bca9396672c708d0476ac3db6a558610dd60f3fd1f0db30e32e12671793
    Size: 376.13 kB
  8. nodejs-packaging-2021.06-6.module+el9+1210+3f69c9e1.noarch.rpm
    MD5: ed4dda57713ea61b4895b8387bfa77b5
    SHA-256: 6c715f083f4ed53e81ec63ef4c01f6303e3ad5417e7168f2edff6e65e121fd8d
    Size: 18.66 kB
  9. nodejs-packaging-bundler-2021.06-6.module+el9+1210+3f69c9e1.noarch.rpm
    MD5: 66fedd23499f8fb84553d952d16c98ab
    SHA-256: e12021892e39bce759fe054d4ece8d48e34d1f12e647ebd1d37f67642ab5ecab
    Size: 8.47 kB
  10. npm-11.19.1-1.24.22.1.3.module+el9+1210+3f69c9e1.noarch.rpm
    MD5: 0b371131ce05d32aac2c9295a0b12d90
    SHA-256: ed533249ae36196b281af977d89eef3cd0ac47d4285880f6ef8330c70c80850e
    Size: 2.52 MB
  11. v8-13.6-devel-13.6.233.17-1.24.22.1.3.module+el9+1210+3f69c9e1.x86_64.rpm
    MD5: 7f087104dc4d12692df8fad7d3e73a68
    SHA-256: 3bf489c506fbf6f152b8b2b7eba16702f94c358294a03022a4cd75390c097495
    Size: 34.27 kB