Kas teid rünnatakse? Võtke ühendust intsidentidele reageerimise meeskonnaga

info@angelforce.eu
Haavatavused

Node.js oktoobri 2026 turbeväljalase: Brotli RCE ja TLS möödapääsud

Node.js 22.23.4, 24.22.1 ja 26.12.1 parandavad kümme viga, sh Brotli dekooderi vea, mis võimaldab koodi käivitada. Kes on ohus ning kuidas uuendada ja kontrollida.

Saadaval ka:EnglishTürkçeDeutschFrançaisEspañolItalianoPolskiNederlands

Illustratsioon: Node.js oktoobri 2026 turbeväljalase: Brotli RCE ja TLS möödapääsud
  1. oktoobril 2026 andis Node.js projekt välja versioonid 22.23.4, 24.22.1 ja 26.12.1. Need parandavad kümme haavatavust, millest neli on hinnatud kõrge raskusastmega. Kõige tõsisem, CVE-2026-111497, on piiriülene kirjutamine (out-of-bounds write) Node'i Brotli dekooderis: väärvormistatud pakitud andmed võivad mälu rikkuda ning majutusfirma Vercel teatab, et uurijad kasutasid seda protsessi mälu lugemiseks ja käskude käivitamiseks Node.js protsessi õigustes. Kaks teist kõrge raskusastmega viga lasevad TLS sertifikaadil läbida hostinime kontrolli, kui see ei tohiks läbida. Node.js 20 ja 25 on jõudnud elutsükli lõppu ega saa parandust.

Millised versioonid on parandatud

VäljalaskeharuParandatud versioonisStaatus
26.x26.12.1praegune
24.x (LTS)24.22.1toetatud
22.x (LTS)22.23.4toetatud
25.xparandust ei oleelutsükli lõpp, minge üle versioonile 26 või 24
20.xparandust ei oleelutsükli lõpp 30. aprillil 2026, minge üle versioonile 22 või 24

Millised on need kümme viga

CVERaskusasteProbleemHarud
CVE-2026-111497KõrgeBrotli dekooderi piiriülene kirjutamine, võib viia koodi käivitamiseni26, 24, 22
CVE-2026-105483KõrgeTLS hostinime kontroll läbitakse, kui IP on kirjutatud täislaiade numbritega26, 24
CVE-2026-106069KõrgeTLS hostinime kontroll läbitakse, kui host laheneb lõdvalt IP-aadressiks26, 24, 22
CVE-2026-105482Kõrgedns.resolve lõikab nimed NUL-märgi kohalt26, 24, 22
CVE-2026-105481KeskmineKeep-alive sokkel võib vastu võtta vastuse, mis kirjutati enne päringu saatmist26, 24, 22
CVE-2026-106072KeskmineSertifikaadi DNS-nimi võib kanoonilisest vormist erinevate IPv4 hostide puhul autentida IP lõpp-punkti26, 24, 22
CVE-2026-106074KeskminerandomUUID() ja randomInt() kordavad samu väärtusi käivitusmälupiltides (startup snapshot) ja üksikutes käivitatavates rakendustes26, 24, 22
CVE-2026-106073MadalPermission Model'i möödapääs fs.realpathSync abil26, 24, 22
CVE-2026-106070MadalZipFile tagastab ebaõnnestunud päisekontrolli järel ründaja kontrollitavaid baite26
CVE-2026-106071MadalPermission Model annab metamärkide kaudu liiga laia failipääsu26

Väljalasked uuendavad ka komplekti kuuluvaid komponente: c-ares, Undici, usaldusväärsete CA-de loend (eemaldatakse kompromiteeritud eMudhra vahe-CA), OpenSSL versioonides 24 ja 22 ning SQLite versioonis 22.

Kes on Brotli veale avatud

Node.js ei dekodeeri Brotlit ise. Olete ohus siis, kui teie kood või mõni selle kasutatav teek pakib lahti Brotli andmeid, mida kontrollib keegi teine. See juhtub sagedamini, kui võiks arvata:

  • Sisseehitatud fetch() dekodeerib vastused päisega Content-Encoding: br automaatselt. Teenus, mis tõmbab kasutajate valitud URL-e, veebikonksude (webhook) või kolmandate osapoolte API-de andmeid, võib saada pahatahtliku vastuse.
  • axios, got ja node-fetch dekodeerivad pakitud vastuseid samuti vaikimisi.
  • Express 5 (body-parser 2) dekodeerib Brotli päringukehasid vaikimisi, nii et API võib saada andmed otse ründajalt.
  • Iga zlib.brotliDecompress, zlib.createBrotliDecompress või DecompressionStream kutse üleslaaditud või kolmandalt osapoolelt pärit andmetel.

Paigake esimesena need kohad, kus need kokku puutuvad internetiga: avalikud API-d, mis võtavad vastu pakitud kehasid, teenused, mis tõmbavad kasutaja antud URL-e, ja kõik, mis pakib lahti üleslaaditud faile.

TLS vead on olulised peamiselt siis, kui ründaja suudab hankida sertifikaadi CA-lt, keda teie klient usaldab, ja see sertifikaat sisaldab IP-aadressi kujulist DNS-nime. DNS viga on oluline siis, kui teie kood annab dns.resolve funktsioonile välist sisendit. Paranduse commit'i järgi ei ole TLS probleeme lihtne ära kasutada, kuid sama uuendus sulgeb need.

Samm 1: leidke iga Node.js käituskeskkond

Linuxis loetlege kõik node binaarfailid koos versiooniga:

sudo find / -xdev -type f -name node -perm -u+x 2>/dev/null | while read -r n; do echo "$n: $("$n" --version 2>/dev/null)"; done

Kontrollige, millist käituskeskkonda töötavad protsessid kasutavad:

for p in $(pgrep -x node); do echo "$p $(sudo readlink -f /proc/$p/exe)"; done

Docker'is kontrollige iga töötavat konteinerit:

for c in $(docker ps --format '{{.Names}}'); do echo "$c: $(docker exec "$c" node --version 2>/dev/null)"; done

Kontrollige ka versioonihaldureid (nvm, fnm, Volta, asdf), CI runnereid, ehitustõmmiseid, Electron'i rakendusi ja serverita funktsioone, kus käituskeskkonna versioon on määratud projekti seadistuses.

Samm 2: uuendage

Ubuntu ja Debian NodeSource pakettidega:

sudo apt update && sudo apt install --only-upgrade nodejs && node --version

nvm-iga:

nvm install 24.22.1 && nvm alias default 24.22.1

Konteinerid: muutke baastõmmis fikseeritud versiooniks, näiteks node:24.22.1-alpine või node:22.23.4-bookworm-slim, ehitage uuesti ja juurutage uuesti. Hosti uuendamine ei muuda seda, mis töötab konteineri sees.

Serverita ja majutusplatvormid: Vercelis paikab 22.x ja 24.x projektid Vercel ise ning Vercel lisas sissetuleva rünnaku vastu tulemüürireeglid; endiselt 20.x peal olevad projektid peavad üle minema versioonile 22.x või 24.x ja uuesti juurutama. Teistel platvormidel kontrollige teenusepakkuja teadaannet ja juurutage uuesti, kui paigatud käituskeskkond on saadaval.

Distributsiooni paketid, näiteks Ubuntu enda nodejs pakett, jäävad sageli maha. Kui node --version ei näita 22.23.4, 24.22.1 ega 26.12.1 (või distributsiooni ehitust, mis nimetab neid CVE-sid), kasutage ametlikke väljalaskeid.

Samm 3: taaskäivitage ja kontrollige

Töötav protsess hoiab vana käituskeskkonda, kuni see taaskäivitub. Pärast paketi uuendamist Linuxis loetleb see node protsessid, mis töötavad endiselt asendatud binaarfailiga:

sudo ls -l /proc/*/exe 2>/dev/null | grep -i 'node.*(deleted)'

Taaskäivitage need teenused (näiteks käsuga systemctl restart, pm2 reload all või uue juurutusega) ja käivitage sammu 1 käsud uuesti.

Kui te ei saa täna uuendada

Ükski neist ei asenda uuendust, kuid need vähendavad ohtu paariks päevaks:

  • Lükake Brotli päringukehad tagasi enne, kui need rakenduseni jõuavad, näiteks NGINX-is käsuga if ($http_content_encoding ~* br) { return 415; } või vahevaras (middleware), mis töötab enne body parsereid.
  • Lülitage automaatne lahtipakkimine välja päringute puhul, mis lähevad ebausaldusväärsetele serveritele: decompress: false axiosis ja gotis, compress: false node-fetchis või undici request(), mis ei paki lahti. Sisseehitatud fetch() välja lülitada ei saa.
  • Käivitage kasutaja antud URL-ide tõmbamine eraldi protsessis, millel on võimalikult vähe õigusi.
  • Enne välise sisendi andmist funktsioonile dns.resolve lükake tagasi nimed, mis sisaldavad NUL-märki.

Kui te ei ole kindel, millised teie teenused dekodeerivad ebausaldusväärseid andmeid, või vajate abi tootmissüsteemi uuendamisel ilma seisakuta, saavad aidata meie turvalise tarkvara ja hallatud turbe meeskonnad.

Kuidas saame aidata

Turvaline tarkvara

Ehitame turvalisuse tarkvarasse alates esimesest koodireast ja arendame ka oma turvatööriistu.

Kirjutage meile
AngelForce’i meeskond

Kirjutanud AngelForce’i meeskond: CEH-, LPT Masteri ja CISA-sertifikaadiga turvakonsultandid, kes testivad, jälgivad ja kaitsevad organisatsioonide süsteeme kogu Euroopas.

Artikkel on kirjutatud tehisintellekti abil allpool loetletud avalike allikate põhjal ning AngelForce’i meeskond vaatas selle enne avaldamist üle.

Allikad

  1. nodejs.org/en/blog/vulnerability/october-2026-security-releases
  2. vercel.com/kb/bulletin/node-js-security-advisory
  3. atlasum.net/blog/cve-2026-111497-nodejs-brotli-decoder
  4. lilting.ch/en/articles/nodejs-tls-dns-brotli-security-release
  5. wardio.net/guides/nodejs-brotli-cve-2026-111497/

Artiklid teemal „Haavatavused“

Rääkige meile, mida soovite kaitsta

Kirjeldage oma keskkonda ja seda, mida soovite saavutada. Vastame e-posti teel.

Kirjutage meile
info@angelforce.eu

AngelForce OÜ · Tallinn, Eesti