CISA voegde CVE-2026-111497 op 27 oktober 2026 toe aan de Known Exploited Vulnerabilities-catalogus (KEV), de lijst met bekende actief misbruikte kwetsbaarheden. De toevoeging was gebaseerd op bewijs van actieve exploitatie. Voor Node.js zijn de getroffen ondersteunde versietakken inmiddels voorzien van specifieke fixes.
CISA nam CVE-2026-111497 op in KEV
De kwetsbaarheid zit in de Brotli-decoder die bij Node.js wordt geleverd. CISA’s KEV-opname maakt actieve exploitatie onderdeel van de actuele status van het lek. De praktische vraag voor beheerders is of onbetrouwbare Brotli-data in hun applicaties een kwetsbare decoder kan bereiken.
Wanneer onbetrouwbare Brotli-data risico oplevert
CVE-2026-111497 is een out-of-bounds write: de decoder schrijft data buiten de grenzen van de daarvoor bestemde buffer. Node.js beschrijft hoe een ongeldige blokwissel ten onrechte wordt behandeld als een verzoek om meer invoer. De streamingdecoder blijft vervolgens data toevoegen aan een interne buffer van acht bytes.
Volgens Node.js kan misvormde invoer een crash of het uitlekken van procesgeheugen veroorzaken, en mogelijk leiden tot uitvoering van code op afstand (RCE). Het project beoordeelt de impact als High. Blootstelling ontstaat wanneer aanvallers beheerde Brotli-data bij een kwetsbare decoder kunnen afleveren; Brotli gebruiken om data te comprimeren is op zichzelf niet genoeg.
Een applicatie hoeft daarvoor niet zelf rechtstreeks node:zlib aan te roepen. Node.js’ ingebouwde fetch() decodeert Brotli-responses automatisch. Ook Express 5 met body-parser kan inkomende request-body’s decomprimeren als die daarvoor is geconfigureerd. Een kale Node.js HTTP-server decodeert een Brotli-requestbody niet enkel doordat hij die ontvangt.
De gecorrigeerde Node.js-versies
Node.js heeft de fout verholpen in deze builds van de ondersteunde versietakken:
| Node.js-tak | Gecorrigeerde versie |
| 22.x | 22.23.4 |
| 24.x | 24.22.1 |
| 26.x | 26.12.1 |
Node.js beschouwt versies waarvan de ondersteuning is beëindigd als getroffen wanneer een beveiligingsrelease verschijnt. Controleer daarom niet alleen welke versie op een host staat, maar ook welke runtime daadwerkelijk in een applicatie of container is opgenomen.
Wat de test van Imperva liet zien
Imperva rapporteerde uitvoering van code in tests met de officiële Node.js 24.22.0-image voor Linux arm64. De geteste routes gebruikten zowel Brotli-decompressie van responses via fetch() als requestverwerking met geconfigureerde Express 5/body-parser-middleware. In die opstelling waren meerdere pogingen nodig. Dezelfde invoer werd afgewezen door Node.js 24.22.1.
Dat resultaat koppelt de demonstratie aan de geteste versie, architectuur en invoerroutes. Het maakt de vaste versie voor die Node.js-tak ook concreet: 24.22.1 wees dezelfde invoer af.
Decodeerpaden controleren en de fix uitrollen
Breng directe decoder-aanroepen en indirecte decompressie in kaart. Controleer onder meer node:zlib, het verwerken van responses met fetch(), ingestelde request-body-middleware en configuratie van proxies. Neem ook containers en zelfstandige applicatiepakketten mee als die een eigen Node.js-runtime bevatten.
Werk de betreffende runtime of bibliotheek bij. Bouw images en zelfstandige artefacten met de gecorrigeerde versie opnieuw, rol ze uit en herstart de services. Controleer daarna welke build de draaiende workload gebruikt. Een update van de Node.js-installatie op de host vervangt niet vanzelf een kwetsbare runtime die in een image of applicatiepakket is gebundeld.