Node.js Brotli-dekoder RCE: CVE-2026-111497
Sikkerhedsudgivelsen af Node.js fra oktober 2026 retter ti fejl. Den ene er en fejl i Brotli-dekoderen, som projektet skriver muliggør fjernkørsel af kode. Her er, hvem der er ramt, og den ene installationsmetode, hvor en opdatering af Node ikke løser det.
Opdatér til Node.js 22.23.4, 24.22.1 eller 26.12.1, og genstart alle Node-processer. Fejlen
er en out-of-bounds write i Brotli-dekomprimering, så kode, der dekomprimerer Brotli-data
fra en angriber, er ramt. Node.js 20 og ældre har nået end of life og får ingen rettelse.
Kommer din Node fra Debian- eller Ubuntu-pakker, skal rettelsen i stedet komme via systemets
libbrotli-pakke.
De fire rettelser med høj alvor
| CVE | Fejl | Ramte linjer |
|---|---|---|
| CVE-2026-111497 | Out-of-bounds write i Brotli-dekoderen muliggør fjernkørsel af kode | 26, 24, 22 |
| CVE-2026-105483 | TLS-tjek af værtsnavn omgås, når IP-adressen skrives med fullwidth-cifre | 26, 24 |
| CVE-2026-106069 | TLS-tjek af værtsnavn omgås, når værten løst kan tolkes som en IP-adresse | 26, 24, 22 |
| CVE-2026-105482 | dns.resolve afkorter navne, der indeholder et NUL-tegn | 26, 24, 22 |
Udgivelsen har også tre fejl med mellem og tre med lav alvor samt opdateringer af c-ares, Undici, OpenSSL på 22.x og 24.x, SQLite på 22.x og CA-listen efter kompromitteringen af eMudhras mellemliggende CA. Udgivelsesnoterne beskriver Brotli-rettelsen som et cherry-pick ind i den Brotli-kopi, Node leverer med.
Hvem er ramt
Fejlen sidder i dekomprimeringen, så spørgsmålet er, om din kode dekomprimerer Brotli-data, som andre styrer:
- Servere, der pakker request-bodies ud, når de sendes med
Content-Encoding: br. Tjek, om din body-parser eller dit framework gør det. - Klienter, der afkoder svar fra servere uden for din kontrol, fx scrapers, webhooks der følger redirects, eller proxyer der dekomprimerer.
- Direkte brug af
zlib.brotliDecompress,brotliDecompressSyncellercreateBrotliDecompresspå uploadede filer eller brugerdata.
En app, der kun komprimerer sine egne svar med Brotli, dekomprimerer ikke input udefra. Opdatér den alligevel. De to fejl i TLS-tjekket af værtsnavne svækker certifikatkontrollen på udgående forbindelser, hvor værten er en IP-adresse eller noget, der løst kan tolkes som en.
Tjek din version
node -v # rettet: v22.23.4, v24.22.1, v26.12.1 eller nyere
which -a node # mere end én node på maskinen?
# Debian- og Ubuntu-pakkerne bruger systemets Brotli-bibliotek:
dpkg -l nodejs libbrotli1 | awk '/^ii/ {print $2, $3}'
ldd "$(command -v node)" | grep -i brotli
Viser ldd libbrotlidec, bruger din Node systemets bibliotek, og sådan
bygger Debian sin nodejs-pakke. De officielle binære filer, nvm, NodeSource og
Docker-images leverer deres egen kopi, og dem retter Node-opdateringen.
Opdatér og genstart
# nvm
nvm install 24 && nvm alias default 24
# De officielle Docker-images blev genbygget 21. oktober 2026
docker pull node:24 && docker compose build --pull && docker compose up -d
# NodeSource-pakker
sudo apt update && sudo apt install --only-upgrade nodejs
# Genstart derefter alle Node-processer: pm2, systemd-units, containere
pm2 restart all En kørende proces beholder det gamle program i hukommelsen. Genstart pm2, systemd-units og containere efter opgraderingen, og byg images igen i stedet for kun at genstarte dem.
Hvis du ikke kan opdatere i dag
På servere kan du afvise Brotli-kodede request-bodies i reverse proxyen, indtil du kan patche. Browsere sender ikke komprimerede request-bodies, så almindelige brugere mærker det ikke:
# Nødløsning: afvis Brotli-komprimerede request-bodies i proxyen
if ($http_content_encoding ~* "br") {
return 415;
} Det dækker ikke udgående requests. For klienter, der henter fra værter uden for din kontrol, er opdateringen den eneste løsning.
Faldgruber
- Debians Node 20 har nået end of life upstream. Debian 13 leverer nodejs 20.19.2, som Node.js-projektet ikke længere understøtter. Den bruger systemets Brotli-bibliotek, så om den er ramt, afhænger af Debians
brotli-pakke. Den 21. oktober 2026 viste Debians sikkerhedstracker ingen åben sag for brotli og intet opslag for CVE-2026-111497. Tjek igen, før du stoler på det. - Flere Node-installationer på én server. nvm, en systempakke og en medleveret runtime i en Electron- eller appliance-app kan ligge side om side.
which -a nodefinder dem i din PATH, ikke de medleverede. - Låste base-images. En Dockerfile låst til
node:24.22.0forbliver sårbar, uanset hvor tit du bygger. Flyt låsen til24.22.1eller nyere.
Sådan blev det kontrolleret. Den 21. oktober 2026 læste vi Node.js' indlæg om sikkerhedsudgivelsen og udgivelsesnoterne til v24.22.1, bekræftede opdateringstidspunkterne for Docker Hub-taggene node:26 og node:24.22.1 via Docker Hubs API og læste debian/rules i Debians nodejs-pakke 20.19.2+dfsg-1+deb13u2, som bygger med --shared-brotli. Ikke testet: selve sårbarheden.
Kilder
- Wednesday, October 21, 2026 Security Releases, Node.js-projektet
- Node.js 24.22.1 (LTS), Node.js-projektet
- Node.js 22.23.4 og Node.js 26.12.1, Node.js-projektet
- nodejs debian/rules, Debian sources
- brotli, Debians sikkerhedstracker
Spørgsmål
Hvad er CVE-2026-111497?
CVE-2026-111497 er en out-of-bounds write med høj alvor i den Brotli-dekoder, Node.js bruger. Node.js-projektet skriver, at den muliggør fjernkørsel af kode. Den rammer udgivelseslinjerne 22.x, 24.x og 26.x og blev rettet 21. oktober 2026 ved at cherry-picke en rettelse ind i den kopi af Brotli-biblioteket, Node.js leverer med.
Hvilke Node.js-versioner retter Brotli-sårbarheden?
Node.js 22.23.4, 24.22.1 og 26.12.1. Linjer, der har nået end of life, som Node.js 20, får ingen rettelse, og Node.js-projektet skriver, at versioner efter end of life altid er ramt, når der kommer en sikkerhedsudgivelse.
Er jeg ramt, hvis jeg har installeret Node.js fra Debian- eller Ubuntu-pakker?
Måske, men rettelsen kommer fra en anden pakke. Debian bygger sin nodejs-pakke med --shared-brotli, så den bruger systemets libbrotli i stedet for den medleverede kopi. En ny upstream-udgivelse af Node.js ændrer ikke noget der. Hold øje med brotli-pakken i din distributions sikkerhedstracker.
Hvilke Node.js-applikationer er ramt af Brotli-fejlen?
Alt, der dekomprimerer Brotli-data, som en angriber styrer. Det gælder servere, der pakker request-bodies sendt med Content-Encoding: br ud, og klienter, der henter fra servere uden for din kontrol og afkoder br-svar. Kode, der aldrig dekomprimerer Brotli, når ikke fejlen, men opdatér alligevel, for samme udgivelse retter tre andre fejl med høj alvor.
Den gratis gennemgang finder alle runtimes på dine servere, og hvordan hver af dem bliver patchet. Priser.