Patching

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.

Det korte svar

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

CVEFejlRamte linjer
CVE-2026-111497Out-of-bounds write i Brotli-dekoderen muliggør fjernkørsel af kode26, 24, 22
CVE-2026-105483TLS-tjek af værtsnavn omgås, når IP-adressen skrives med fullwidth-cifre26, 24
CVE-2026-106069TLS-tjek af værtsnavn omgås, når værten løst kan tolkes som en IP-adresse26, 24, 22
CVE-2026-105482dns.resolve afkorter navne, der indeholder et NUL-tegn26, 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:

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

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

  1. Wednesday, October 21, 2026 Security Releases, Node.js-projektet
  2. Node.js 24.22.1 (LTS), Node.js-projektet
  3. Node.js 22.23.4 og Node.js 26.12.1, Node.js-projektet
  4. nodejs debian/rules, Debian sources
  5. 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.

Node-tjenester, ingen har rørt i månedsvis?

Den gratis gennemgang finder alle runtimes på dine servere, og hvordan hver af dem bliver patchet. Priser.

Gratis servergennemgang