📋 TL;DR — last updated 2026-11-05 11:10 UTC
Node.js published security releases on October 21, 2026 that fix 10 vulnerabilities, with a highest severity of High. The most serious, CVE-2026-111497, is an out-of-bounds write in the Brotli decoder that upstream says can allow remote code execution. No CVSS scores had been published at the time of writing.
- Affected: Node.js Selector (alt-nodejs packages) and ea-nodejs22 (cPanel) on CloudLinux, plus the TuxCare, Debian, Ubuntu, and Alpine builds, on every Node.js line CloudLinux ships, including end-of-life versions. Upstream notes that end-of-life versions are always affected by security releases.
- Mitigation: none documented upstream. Updating the system brotli package does not help, because alt-nodejs packages carry their own copy of Brotli. See Is there a mitigation?.
- Fix status: every fixed package is released. CloudLinux has fixed alt-nodejs 10, 12, 14, 16, 18, 19, 20, 22, 24, and 26, and ea-nodejs22 for CloudLinux 8. Release 2 of alt-nodejs22 and alt-nodejs24 adds a fix for CVE-2026-106071, so servers that installed release 1 need to update again. All TuxCare builds are released. alt-nodejs6, alt-nodejs8, alt-nodejs9, and alt-nodejs11 get no fix: move those applications to a supported line.
- Verify: after updating, check each installed alt-nodejs package’s release against the minimum fixed release. End-of-life lines keep their Node.js version, so node –version will not change for them. See How to verify you are patched.
- Status page: follow the CloudLinux status page incident for release notices. Every release notice is also in the Update history below.
Correction: 2026-11-05
Our 22 October version of this post listed two packages as still on the way. Neither is coming. alt-nodejs22 is not built for CloudLinux 7: Node.js 22 is available for CloudLinux 8 and 9 only. alt-nodejs23 is not a CloudLinux package: it is a TuxCare build for Debian and Alpine, and it is released there. The How to verify table also gave EL release numbers that do not apply to CloudLinux for Ubuntu 22.04, where the fixed releases are lower. If you checked an Ubuntu 22.04 server against it, check again with the corrected table.
Node.js released v22.23.4, v24.22.1, and v26.12.1 on October 21, 2026. Together they fix 10 CVEs across the HTTP, DNS, TLS, crypto, and permission-model code, plus the Brotli decoder. Four are rated High, three Medium, and three Low.
CloudLinux ships Node.js to hosting accounts through Node.js Selector, as alt-nodejs packages. A fix from nodejs.org therefore reaches your accounts only when we rebuild those packages and you install them. The same applies to ea-nodejs22 (cPanel) and to the TuxCare, Debian, Ubuntu, and Alpine builds.
Status page. Release notices for this issue are posted on the CloudLinux status page incident. Subscribe to the status page to be notified when each package ships.
Why this matters on a shared host
On a shared server the Node.js version belongs to each account’s application, not to you. Anyone who can send that application data it will decode, parse, or validate can reach the runtime underneath it. The High-rated issues cover the Brotli decoder, DNS name handling, and TLS hostname checks, so exposure depends on what each application does with network input.
Upstream does not patch end-of-life Node.js lines, and those are the versions most likely to sit forgotten on older accounts. CloudLinux has released updated packages for the end-of-life lines 10, 12, 14, 16, 18, 19, and 20. alt-nodejs6, alt-nodejs8, alt-nodejs9, and alt-nodejs11 are not patched.
Which versions are affected?
Every Node.js line in the CloudLinux repositories is affected. The table shows where each line stands.
| Node.js line | Affected | Status |
|---|---|---|
| 26.x, 24.x, 22.x Supported upstream; fixed in v26.12.1, v24.22.1, and v22.23.4 | ❌ Yes | ✅ alt-nodejs24 and alt-nodejs26 released for CloudLinux 8 and 9 ✅ alt-nodejs22 released for CloudLinux 8 and 9 (Node.js 22 is not built for CloudLinux 7) ✅ Release 2 of alt-nodejs22 and alt-nodejs24 adds the CVE-2026-106071 fix |
| 10.x, 12.x, 14.x, 16.x, 18.x, 19.x, 20.x End-of-life lines shipped by CloudLinux | ❌ Yes | ✅ alt-nodejs10, alt-nodejs12, alt-nodejs14, and alt-nodejs16 released for CloudLinux 7, 8, and 9 ✅ alt-nodejs18 released for CloudLinux 7, 8, 9, and 7h ✅ alt-nodejs19 and alt-nodejs20 released for CloudLinux 7, 8, and 9 |
| 6.x, 8.x, 9.x, 11.x End-of-life lines shipped by CloudLinux | ❌ Yes | ❌ No fix: move applications to a supported line |
| ea-nodejs22 (cPanel) | ❌ Yes | ✅ Released for CloudLinux 8: ea-nodejs22-22.23.4-1.el8.cloudlinux |
| TuxCare builds | ❌ Yes | ✅ alt-nodejs12 and alt-nodejs14 released for CloudLinux 6, 7, 8, 9, and 10 ✅ alt-nodejs16, alt-nodejs18, and alt-nodejs20 released for CloudLinux 7, 8, 9, and 10 ✅ alt-nodejs22, alt-nodejs24, and alt-nodejs26 released for CloudLinux 8, 9, and 10 ✅ nodejs 16 and brotli released for AlmaLinux 9.2 ESU and TuxCare 9.6 and 9.8 ESU |
Debian, Ubuntu, and Alpine builds are listed per package. The CloudLinux column covers Ubuntu 22.04.
| Package | TuxCare | CloudLinux (Ubuntu 22.04) |
|---|---|---|
| alt-nodejs12 | ✅ Debian 10, 11, 12, and 13; Ubuntu 18.04, 20.04, 22.04, and 24.04 | ✅ Released |
| alt-nodejs14 | ✅ Debian 10, 11, 12, and 13; Ubuntu 18.04, 20.04, 22.04, and 24.04; Alpine 3.23 and 3.24 | ✅ Released |
| alt-nodejs16 | ✅ Debian 10, 11, 12, and 13; Ubuntu 18.04, 20.04, 22.04, and 24.04; Alpine 3.23 and 3.24 | ✅ Released |
| alt-nodejs18 | ✅ Debian 10, 11, 12, and 13; Ubuntu 18.04, 20.04, 22.04, and 24.04; Alpine 3.23 and 3.24 | ✅ Released |
| alt-nodejs20 | ✅ Debian 10, 11, 12, and 13; Ubuntu 18.04, 20.04, 22.04, and 24.04 | ✅ Released |
| alt-nodejs22 | ✅ Debian 11, 12, and 13; Ubuntu 20.04, 22.04, 24.04, and 26.04 | ✅ Released |
| alt-nodejs23 | ✅ Debian 12 and 13; Alpine 3.23 and 3.24 | None listed |
| alt-nodejs24 | ✅ Debian 12 and 13; Ubuntu 22.04, 24.04, and 26.04 | ✅ Released |
| alt-nodejs26 | ✅ Debian 13; Ubuntu 24.04 and 26.04 | None listed |
Which of the 10 CVEs apply depends on the line. CVE-2026-106070 applies to 26.x only, and CVE-2026-105483 applies to 26.x and 24.x. Upstream lists CVE-2026-106071 for 26.x only, but our engineers reproduced it on 22.x and 24.x and fixed it there in release 2 of alt-nodejs22 and alt-nodejs24. The full list is in the section on what the releases fix.
Is there a mitigation?
No workaround for CVE-2026-111497 is documented upstream. The fix is the updated package.
Updating the system brotli package does not fix it. alt-nodejs packages carry their own copy of Brotli, so only an updated alt-nodejs package closes the issue.
Until the fixed package for your Node.js line is available, the practical way to limit exposure to the Brotli issue is to avoid decoding Brotli data from sources you do not control. That means reviewing applications that fetch compressed content from third-party servers or accept compressed uploads. This reduces risk and does not remove it.
Update history
Loading updates…
Update instructions
Fixed packages are available for alt-nodejs 10, 12, 14, 16, 18, 19, 20, 24, and 26 on CloudLinux, for alt-nodejs22 on CloudLinux 8 and 9, and for ea-nodejs22 (cPanel) on CloudLinux 8. The tables above list the platforms each one covers. If you updated alt-nodejs22 or alt-nodejs24 before 26 October, update again to get release 2.
Fixed packages go straight to the stable repositories, so no testing-channel step is needed. CageFS does not need a manual update.
# See which alt-nodejs packages are installed
rpm -qa 'alt-nodejs*'
# Update them
yum update 'alt-nodejs*'
On CloudLinux for Ubuntu 22.04:
apt-get update && apt-get install --only-upgrade 'alt-nodejs*'
On cPanel servers on CloudLinux 8, update ea-nodejs22:
dnf upgrade ea-nodejs22
Running applications keep using the old binary until they restart. After updating, restart the Node.js applications on each account, either from Node.js Selector or with:
cloudlinux-selector restart --json --interpreter nodejs --user <user> --app-root <app_root>
How to verify you are patched
End-of-life lines keep their upstream Node.js version, so node –version does not change after the update. Check the package release instead:
rpm -q alt-nodejs16-nodejs
On CloudLinux for Ubuntu 22.04, use dpkg-query -W alt-nodejs16-nodejs. On an end-of-life line the package is fixed if its release is at least the value in the table. On 22, 24, and 26 it is fixed at the version shown or any later version.
| Package | Minimum fixed release, CloudLinux 7, 8, and 9 | Minimum fixed release, CloudLinux for Ubuntu 22.04 |
|---|---|---|
| alt-nodejs10 | 8 | Not built |
| alt-nodejs12 | 35 | 33 |
| alt-nodejs14 | 37 | 35 |
| alt-nodejs16 | 33 | 32 |
| alt-nodejs18 | 26 | 26 |
| alt-nodejs19 | 10 | Not built |
| alt-nodejs20 | 15 | 14 |
| alt-nodejs22 | 22.23.4-2 | 22.23.4-2 |
| alt-nodejs24 | 24.22.1-2 | 24.22.1-2 |
| alt-nodejs26 | 26.12.1-1 | Not built |
On the supported lines, the Node.js version also reads v22.23.4, v24.22.1, or v26.12.1 or later once the package is fixed.
The rest of this advisory is background for readers who want it: the full list of fixes and the dependency updates in these releases. Neither is required to apply the update above.
What the October 2026 Node.js releases fix
Severity is as rated upstream. The Node.js advisory does not publish CVSS scores or per-CVE fixed versions; it lists the three fixed releases above.
| CVE | Issue | Severity | Affected lines |
|---|---|---|---|
| CVE-2026-111497 | Brotli decoder out-of-bounds write, can allow remote code execution | High | 26.x, 24.x, 22.x |
| CVE-2026-105482 | dns.resolve truncates names containing a NUL character | High | 26.x, 24.x, 22.x |
| CVE-2026-105483 | TLS certificate hostname bypass when the IP is written in fullwidth digits | High | 26.x, 24.x |
| CVE-2026-106069 | TLS certificate hostname bypass when the host loosely resolves to an IP address | High | 26.x, 24.x, 22.x |
| CVE-2026-105481 | Keep-alive socket processes a response written before the request was sent | Medium | 26.x, 24.x, 22.x |
| CVE-2026-106072 | Improper certificate validation for non-canonical IPv4 hostnames lets DNS SANs authenticate IP endpoints | Medium | 26.x, 24.x, 22.x |
| CVE-2026-106074 | crypto.randomUUID() and randomInt() entropy caches saved into startup snapshots and single executable applications, so every process repeats the same values | Medium | 26.x, 24.x, 22.x |
| CVE-2026-106070 | ZipFile returns attacker-controlled prefix bytes after failed ZIP header validation | Low | 26.x |
| CVE-2026-106071 | Permission Model filesystem over-grant through wildcard radix lookup | Low | 26.x |
| CVE-2026-106073 | Permission Model bypass with fs.realpathSync | Low | 26.x, 24.x, 22.x |
The Brotli fix includes a cherry-picked upstream Brotli commit. The three TLS issues and the DNS issue matter most to applications that validate certificates for outbound connections or resolve names taken from untrusted input.
Dependency updates in the same releases
Alongside the CVE fixes, upstream updated bundled dependencies:
- c-ares: 26.x, 24.x, 22.x
- Root certificates (including a change for the eMudhra Intermediate CA compromise): 26.x, 24.x, 22.x
- OpenSSL: 24.x, 22.x
- SQLite: 22.x
- Undici: 26.x, 24.x, 22.x
Comments