Codegea

Development

Custom software developmentSystems, platforms and integrations built around your operationCorporate websitesProfessional, fast and built to inspire trustOnline storesCatalog, payments and shipping ready to sell 24/7WooCommerceFast WooCommerce stores with each country’s payments and invoicingLanding pagesA page focused on one goal: turning visitors into customersMobile appsCustom iOS and Android apps that put your business in your customers’ pockets

Integration and CMS

CMS integrationsWordPress, Strapi, Directus and Arc XP connected to your whole ecosystemArc XPSupport, implementation and integrations for the media platformMigrationsMigrate your site, platform or database without losing anything

Growth and infrastructure

AI automationTechnology does the repetitive work and your team focuses on what mattersOn-page SEOBe found and recommended by Google: technical and content optimizationServers & hostingFast, secure servers monitored 24/7
RetainerYour dev team, by the monthFrom 20h a month. Fixed fee.
GASEC: a web redesign, SEO and security that saved thousands of dollarsA secure, monitored and more productive site, with estimated savings of USD 3,600 over four years.See the case

By type

EcommerceStores and catalogsCorporate sitesBrand and lead genPlatforms & appsCustom software

Explore

All projectsCases and resultsClientsWho trusts usRetainerMonthly dev team

Blog

All articlesGuides and opinionNewsletterOne email a monthContactWe reply in 24h

Latest articles

Node.js fixes 10 vulnerabilities, one with RCE in Brotli: update todayNode.js · 2026-10-22Critical PHP vulnerability (CVE-2026-109618): how to protect your site todayServers · 2026-10-22How codegea.com is built: Next.js, Payload, Turso and R2CMS · 2026-10-20
NewsletterJoin our newsletterPractical web, SEO and AI notes.
ServicesCustom software developmentCorporate websitesOnline storesWooCommerceLanding pagesMobile appsCMS integrationsArc XPMigrationsAI automationOn-page SEOServers & hostingYour dev team, by the month
ProjectsA secure, monitored and more productive site, with estimated savings of USD 3,600 over four years.EcommerceCorporate sitesPlatforms & appsAll projectsClientsRetainer
Retainer
BlogAll articlesNewsletterContactNode.js fixes 10 vulnerabilities, one with RCE in Brotli: update todayCritical PHP vulnerability (CVE-2026-109618): how to protect your site todayHow codegea.com is built: Next.js, Payload, Turso and R2Join our newsletter
ESEN
Let's talk

Node.js

Node.js fixes 10 vulnerabilities, one with RCE in Brotli: update today

Node.js 22.23.4, 24.22.1 and 26.12.1 fix 10 vulnerabilities, including CVE-2026-111497, a remote code execution in the Brotli decoder. What to do now.

Derian Pinto · Founder & Full Stack Developer2026-10-223 min

On 21 October 2026 the Node.js project published security releases for the 22.x, 24.x and 26.x lines. They fix 10 vulnerabilities. The most serious is CVE-2026-111497: an out-of-bounds write in the Brotli decoder that allows remote code execution.

An important nuance: the official advisory rates the worst issue as High severity, not "critical", and mentions no critical issue. Even so, an RCE in a library that processes network data deserves an update as soon as possible.

Patched versions

Line

Fixed version

22.x

22.23.4

24.x (LTS)

24.22.1

26.x

26.12.1

Versions that have already reached end of life are also affected and will not get a patch.

The 10 vulnerabilities

CVE

Severity

Lines

Summary

CVE-2026-111497

High

22, 24, 26

Out-of-bounds write in the Brotli decoder that permits remote code execution

CVE-2026-106069

High

22, 24, 26

TLS certificate hostname bypass when the host loosely resolves to an IP address

CVE-2026-105483

High

24, 26

TLS certificate hostname bypass when the IP is written with fullwidth digits

CVE-2026-105482

High

22, 24, 26

dns.resolve truncates names containing the NUL character

CVE-2026-105481

Medium

22, 24, 26

A keep-alive socket processes a response that was written before the request was sent

CVE-2026-106072

Medium

22, 24, 26

Improper certificate validation for non-canonical IPv4 hostnames

CVE-2026-106074

Medium

22, 24, 26

The crypto.randomUUID() and randomInt() entropy caches are saved into startup snapshots and SEAs, so every process repeats the same values

CVE-2026-106070

Low

26

ZipFile returns attacker-controlled prefix bytes after failed header validation

CVE-2026-106071

Low

26

Permission Model filesystem over-grant

CVE-2026-106073

Low

22, 24, 26

Permission Model bypass with fs.realpathSync

The release also updates bundled dependencies: c-ares, Undici, OpenSSL (22.x and 24.x), SQLite (22.x) and a root certificate change due to the compromise of an intermediate CA (eMudhra).

Why Brotli matters

Brotli is a compression format that web servers and APIs use routinely. Node ships it inside the binary itself, so updating a Brotli library on your operating system is not enough: you need the new Node binary.

According to third-party analyses of the advisory, fetch() and Express 5 decompress Brotli automatically, which makes the vulnerable code easier to reach when your application processes data it does not control, such as responses from external APIs. The official advisory describes the flaw in a single line, so it is best not to assume more than what has been published. No attacks have been reported so far, but the window between a patch and exploitation tends to be short.

How to update

  1. Check your version: node -v on the server and, if you use containers, the tag of your base image.
  2. nvm or fnm install: nvm install 24 (or the line you use) and nvm alias default 24.
  3. Docker: update FROM node:24 to a rebuilt image (node:24.22.1) and rebuild without cache.
  4. Managed platforms (Vercel, Railway, Render…): confirm your project uses the latest minor version of your line; on most it is set in the project settings.
  5. Restart the processes (PM2, systemd, containers). A running process keeps using the old binary in memory.
  6. If you use startup snapshots or SEAs (Single Executable Applications): regenerate them with the new version because of CVE-2026-106074; updating the binary is not enough.
  7. Run your tests and check that npm audit reports nothing new.

If you are still on an unsupported line (for example Node 18 or 20), take the chance to move to 24 LTS: the patch will not reach those versions.

What else to check

  • That outgoing calls always verify the TLS certificate and do not disable validation (rejectUnauthorized: false).
  • That you do not rely on the Permission Model as your only security barrier until you update.
  • That your CI pipeline installs a pinned version and not an uncontrolled "latest".

References


Is your Node.js application running on a server nobody reviews? At Codegea we audit your Node version, update and rebuild your deployment and set up ongoing maintenance and monitoring so you do not depend on hearing about it in the news. Tell us about your case.

Share this article?LinkedInWhatsAppX

Written by

Derian Pinto

Founder & Full Stack Developer

Founder of Codegea. Builds custom websites, stores and platforms, and integrates and supports Arc XP for media companies.

Join our newsletter

An email with news and practical web, SEO and AI notes. No spam, unsubscribe anytime.

Shall we build your project?

Need help? Chat with us