Oprava vydána CVSS 8,2 Aktuálně

Node.js opravuje 16 chyb: vzdálený pád serverů s HTTP/2 a únik paměti jiných spojení přes HTTPS

Projekt Node.js 11. listopadu 2026 vydal bezpečnostní aktualizace pro větve 26.x, 24.x a 22.x. Opravují 16 zranitelností, z toho 7 s vysokou závažností. Většina se týká vestavěné podpory HTTP/2 a TLS: útočník bez přihlášení může shodit server, u HTTPS za určitých podmínek přečíst paměť s daty jiných spojení včetně soukromého klíče TLS. O zneužívání se zatím neví. Které servery jsou ohrožené a jak postupovat.

Redakce Kyberkitu · · událost ze dne · čtení na 5 minut · Pro správce a analytiky

Oprava vydána: Node.js, CVE-2026-123864, CVSS 8,2

Ve zkratce

  • Týká se: správců a vývojářů serverů v Node.js 22.x, 24.x a 26.x, hlavně těch, které samy obsluhují HTTP/2 nebo HTTPS bez reverzní proxy.
  • Opravené verze z 11. 11. 2026: v26.13.1, v24.22.3 a v22.23.5. Celkem 16 CVE – 7 vysokých, 6 středních, 3 nízké (hodnocení Node.js).
  • Nejvážnější: CVE-2026-123864 (HTTPS, čtení paměti jiných spojení včetně klíčů TLS, za specifických podmínek), CVE-2026-123863 (vzdálený pád HTTP/2 bez přihlášení, CVSS 8,2) a CVE-2026-123872 (obejití ověření klientským certifikátem při renegociaci TLS 1.2).
  • Node.js indikátory napadení ani dočasná řešení nezveřejnil. Záznamy v NVD mají stav Received se skóre od CNA.

Zranitelnosti: CVE-2026-123864, CVE-2026-123863, CVE-2026-123872, CVE-2026-123866, CVE-2026-123874, CVE-2026-123865, CVE-2026-126051

Co se stalo

Projekt Node.js vydal 11. listopadu 2026 bezpečnostní aktualizace pro tři podporované větve: v26.13.1, v24.22.3 a v22.23.5. Opravují 16 zranitelností – podle hodnocení Node.js 7 vysokých, 6 středních a 3 nízké. Předchozí bezpečnostní vydání vyšlo 21. října 2026.

Většina chyb je ve vestavěné podpoře HTTP/2 (modul node:http2) a v TLS. Nejčastější dopad je vzdálený pád serveru bez přihlášení, u několika chyb ale i únik paměti – server pošle klientovi kusy paměti, které patří jiným spojením. Vydání zároveň aktualizuje přibalené knihovny llhttp (všechny tři větve), undici (24 a 26) a SQLite (22 a 24).

Pět chyb nahlásil Chris Rohlf ve spolupráci s Claude a Anthropic Research, další výzkumníci a Trail of Bits. NVD záznamy zveřejnila 11. 11. 2026 večer se stavem Received a skóre CVSS 3.0 od přidělující autority (CNA).

Technické podrobnosti

Nejvážnější chyby s vysokou závažností:

CVE Větve Co způsobí CVSS (NVD, CNA)
CVE-2026-123864 22, 24, 26 HTTPS: čtení paměti jiných spojení, včetně klíčů TLS 8,1
CVE-2026-123863 24, 26 HTTP/2: vzdálený pád procesu (selhání kontroly paměti) 8,2
CVE-2026-123872 22, 24, 26 TLS 1.2: obejití ověření klientským certifikátem 8,1
CVE-2026-123866 22, 24, 26 HTTP/2: odeslání uvolněné paměti (use-after-free) 7,5
CVE-2026-123874 24, 26 HTTP/2: use-after-free u respondWithFile() 7,5
CVE-2026-123865 22, 24, 26 HTTP/2: únik paměti a deskriptorů, sockety v CLOSE_WAIT 7,5
CVE-2026-126051 24, 26 TLS: nezachycená výjimka a pád procesu 7,5
  • CVE-2026-123864 je chyba opětovného vstupu (re-entrancy) při zpracování těla požadavku přes HTTPS: zápis nulové délky způsobí předčasné dešifrování záznamu TLS, použití uvolněné paměti a čtení mimo hranice haldy. Podle Node.js je ale potřeba souhra podmínek – obslužná funkce volá res.flushHeaders() před koncem těla požadavku, potom res.end() s neprázdnými daty, a aplikace má cestu, která tělo požadavku vrací nebo ukládá. Nešifrovaný node:http zasažený není.
  • CVE-2026-123863 je varianta starší chyby CVE-2024-27983, kterou tehdejší oprava nepokryla. Proud HTTP/2, který ještě drží buffery hlaviček, přežije svou relaci a kontrola účtování paměti proces ukončí. Útočník nepotřebuje přihlášení a funguje to přes TLS i nešifrované HTTP/2.
  • CVE-2026-123872: při renegociaci TLS 1.2 může klient změnit název serveru (SNI) a přenést si ověření na hostitele s přísnějšími požadavky na klientský certifikát.
  • Další vysoké chyby v HTTP/2 vedou k použití uvolněné paměti (CVE-2026-123866, CVE-2026-123874 – stačí, že server posílá soubory přes respondWithFile() nebo respondWithFD()) nebo k postupnému vyčerpání paměti a deskriptorů (CVE-2026-123865, neúplná oprava CVE-2026-48937).

Mezi středními chybami je i obejití ověření certifikátu v https.Agent při opakovaném použití relace TLS (CVE-2026-123877), selhání per-host CA u server.addContext() (CVE-2026-123867) a únik přihlašovacích údajů k proxy v chybových hláškách (CVE-2026-123871). Ukázkový kód Node.js nezveřejnil a my ho nepřinášíme.

Koho se to týká

  • Node.js 26.x před 26.13.1, 24.x před 24.22.3 a 22.x před 22.23.5. Některé chyby (např. CVE-2026-123863, CVE-2026-123874) se týkají jen 24 a 26.
  • Nejvíc ohrožené jsou servery, které samy obsluhují HTTP/2 nebo HTTPS – http2.createSecureServer(), http2.createServer(), https.createServer() – a jsou dostupné z internetu.
  • Verze s ukončenou podporou jsou podle Node.js zasažené vždy a opravu nedostanou.

Verzi a použití HTTP/2 rychle zjistíte takto:

node -v
grep -rnE "createSecureServer|http2\.createServer|respondWithFile|flushHeaders" --include=*.js --include=*.ts --exclude-dir=node_modules .

Node.js v Dockeru má verzi danou obrazem – zkontrolujte tag (node:24, node:22-alpine…) a obraz znovu stáhněte a sestavte. U balíčků z distribuce se řiďte jejím bezpečnostním oznámením.

Jak poznat napadení

Node.js indikátory napadení nezveřejnil a o zneužívání nepíše. Pár tipů z praxe:

  • Opakované pády procesu s hláškami o selhání kontroly (CHECK_EQ, ERR_INTERNAL_ASSERTION) nebo restarty od správce procesů (pm2, systemd, Kubernetes) – hlavně ve spojení s provozem HTTP/2.
  • Rostoucí počet socketů v CLOSE_WAIT a spotřeba paměti: ss -tan state close-wait | wc -l.
  • U CVE-2026-123864 únik paměti v logu nepoznáte. Pokud vaše aplikace splňuje popsané podmínky a byla přímo dostupná přes HTTPS, počítejte s možností úniku dat.
  • Podezřelé IP adresy z logů rychle vytáhnete naším extraktorem IOC – běží jen ve vašem prohlížeči.

Co udělat

  1. Aktualizujte na Node.js 26.13.1, 24.22.3 nebo 22.23.5 (nebo opravený balíček distribuce) a restartujte všechny procesy – běžící aplikace zůstávají zranitelné, dokud se nerestartují. U kontejnerů obrazy znovu sestavte.
  2. Ověřte verzi příkazem node -v přímo v produkčním prostředí.
  3. Pokud aplikace splňuje podmínky CVE-2026-123864 (HTTPS přímo v Node.js, res.flushHeaders() před koncem těla, cesta vracející tělo požadavku), po aktualizaci vyměňte klíč TLS a nechte vydat nový certifikát. To je naše doporučení, ne pokyn Node.js.
  4. Dokud aktualizaci nenasadíte, je rozumné nechat HTTPS a HTTP/2 ukončovat reverzní proxy (nginx, HAProxy, CDN) a do Node.js posílat jen HTTP/1.1. Také to je naše odvození z popisu chyb – Node.js dočasná řešení neuvádí.
  5. Používáte mTLS (klientské certifikáty)? Zkontrolujte nastavení server.addContext() a vypnutí renegociace TLS 1.2 – týkají se vás CVE-2026-123872 a CVE-2026-123867.

Časová osa

Časová osa bezpečnostního vydání Node.js z listopadu 202621. 10. 2026: Předchozí bezpečnostní vydání Node.js; 11. 11. 2026: Vydání 26.13.1, 24.22.3 a 22.23.5 se 16 opravami, záznamy v NVD; 12. 11. 2026: Žádná z chyb není v katalogu CISA KEV21. 10. 2026Předchozí bezpečnostní vydáníNode.js11. 11. 2026Vydání 26.13.1, 24.22.3a 22.23.5 se 16 opravami,záznamy v NVD12. 11. 2026Žádná z chyb není v kataloguCISA KEV
Klíčová data (Node.js, NVD, CISA)

Aktualizace

  • 12. 11. 2026 – první verze článku.

Časté otázky

Používám Express nebo Fastify přes HTTP/1.1. Týká se mě to?

Většina chyb je v HTTP/2 (modul node:http2), který se musí zapnout ve vašem kódu. CVE-2026-123864 ale postihuje i běžné HTTPS servery a několik chyb je v TLS a v https.Agent. Aktualizujte tedy každou instalaci Node.js 22, 24 a 26 bez ohledu na framework.

Mám před Node.js nginx nebo CDN. Jsem v bezpečí?

Pokud proxy ukončuje HTTPS i HTTP/2 a do Node.js posílá jen nešifrované HTTP/1.1, k zranitelnému kódu HTTP/2 a TLS serveru se provoz z internetu nedostane. To je naše odvození z popisu chyb, ne vyjádření Node.js. Chyby v klientské části (https.Agent, proxy) se vás týkají dál, proto aktualizujte i tak.

Musím vyměnit certifikát a klíč TLS?

Node.js to neukládá. U CVE-2026-123864 ale popisuje únik paměti včetně soukromých klíčů TLS. Pokud váš server přímo obsluhoval HTTPS a obsahuje kód, který volá res.flushHeaders() před koncem těla požadavku a zároveň vrací nebo ukládá těla požadavků, doporučujeme po aktualizaci klíč vyměnit a certifikát znovu vydat.

Co Node.js 20 a starší?

Node.js uvádí, že verze s ukončenou podporou (End-of-Life) jsou bezpečnostním vydáním zasažené vždy a opravu nedostanou. Přejděte na podporovanou větev 22, 24 nebo 26.

Zdroje

  1. Node.js – Wednesday, November 11, 2026 Security Releases (anglicky)
  2. NVD – CVE-2026-123864 (HTTPS, CWE-416, CVSS 3.0 8,1)
  3. NVD – CVE-2026-123863 (HTTP/2, CWE-617, CVSS 3.0 8,2)
  4. NVD – CVE-2026-123872 (TLS 1.2 renegociace, CWE-287, CVSS 3.0 8,1)
  5. CISA – Known Exploited Vulnerabilities Catalog (anglicky)

Našli jste v článku chybu? Dejte nám vědět, opravu vyznačíme.