Ugrás a tartalomhoz
Montavio Group

Node2Shell: Node.js Brotli-sérülékenység és a javítás

A CVE-2026-111497 a Node.js Brotli-dekóderét érinti. Mikor vezethet távoli kódfuttatáshoz, mely verziók javítottak, és mit kell ellenőrizni az éles rendszereken?

Montavio szakmai csapat5 perc olvasás
Node2Shell felirat és Node.js biztonsági figyelmeztetés szerverkapcsolatokat mutató fotón

Fotó: Brett Sayles / Pexels (Montavio-szerkesztés) · illusztráció

Röviden

A Node2Shell az Imperva elnevezése a CVE-2026-111497 számú, magas súlyosságú Node.js Brotli-dekóderhibára. Nem minden Node.js-alkalmazás érhető el ugyanazon támadási úton: a kockázat ott merül fel, ahol nem megbízható Brotli-adat jut a natív dekóderhez. A Node.js projekt 22.23.4, 24.22.1 és 26.12.1 kiadása javítja a hibát. A futó példányokat is cserélni kell, majd a tényleges éles verziót ellenőrizni.

Mi a Node2Shell?

A Node2Shell az Imperva Threat Research elnevezése a CVE-2026-111497 azonosítójú Node.js sérülékenységre. A hiba a Node.js-be épített natív Brotli-dekóderben található. A Node.js projekt 2026. október 21-én magas súlyosságú biztonsági hibaként közölte, amely határon túli memóriaíráshoz és távoli kódfuttatáshoz vezethet.

A név nem az aznapi összes Node.js-hibát jelöli. A biztonsági kiadás más DNS-, TLS- és egyéb sérülékenységeket is javított, de a Node2Shell-ként emlegetett kutatás kifejezetten a Brotli-dekóderre vonatkozik. A pontos CVE feltüntetése ezért segít elkerülni a félreértést.

Hogyan alakul ki a sérülékenység?

A Brotli egy tömörítési formátum. A Node.js alkalmazás akkor használja a dekódert, amikor Brotli-tömörített adatot bont ki. A sérülékeny natív kód bizonyos hibásan felépített adatfolyamot nem megfelelően utasít el, és a feldolgozás hibás belső állapottal folytatódhat. Ez a memóriában a kijelölt tartományon túli íráshoz vezethet.

Az Imperva elemzése szerint a sérülékeny Node.js 24.22.0 hivatalos Linux arm64 konténerképén sikerült kódfuttatást bemutatni. A támadó által adott adat a vizsgált alkalmazás folyamatában futott; a javított 24.22.1 ugyanazt a bemenetet elutasította. A kísérlet több próbálkozást igényelt, és nem terjedt ki minden Node-verzióra, architektúrára és alkalmazásra. Ez konkrét bizonyíték a lehetséges hatásra, nem minden telepítés automatikus kompromittálódásának bizonyítéka.

Mi történt az incidens során?

2026. október 21-én a Node.js projekt a 22.x, 24.x és 26.x ágakhoz biztonsági kiadást tett közzé. A közlemény a Brotli-dekóder CVE-2026-111497 hibáját magas súlyosságúnak sorolja, és távoli kódfuttatás lehetőségét nevezi meg. Ugyanebben a csomagban több, ettől különálló DNS- és TLS-hibát is javítottak.

Október 22-én az Imperva saját kutatási eredményt közölt Node2Shell néven: hivatalos Node.js 24.22.0 Linux arm64 képen sikerült kódfuttatást elérniük, míg a 24.22.1 javított kiadás elutasította ugyanazt a Brotli-bemenetet. Ez laboratóriumi demonstráció; a források alapján nem állítható, hogy minden érintett szolgáltatást megtámadtak, vagy hogy minden platformon azonos a kihasználhatóság.

Mely alkalmazások lehetnek kitéve?

A döntő kérdés az, hogy nem megbízható Brotli-adat eljut-e a Node.js beépített dekóderéhez. Ez történhet akkor, amikor a szolgáltatás külső szervertől kapott Brotli-tömörített HTTP-választ dolgoz fel, vagy amikor az alkalmazás beállított middleware-je egy bejövő, `Content-Encoding: br` kérés törzsét bontja ki.

Az Imperva a beépített `fetch()` által kezelt külső választ és Express/body-parser konfigurációval kezelt bejövő törzset is vizsgálta. Az Express és a body-parser ezekben az esetekben a dekóderhez vezető útvonalak, nem a natív hiba forrásai. Egy csupasz Node.js HTTP-szerver nem bontja ki automatikusan a bejövő Brotli-törzset pusztán attól, hogy fogadja a kérést. A tényleges kitettséget alkalmazásonként kell feltérképezni.

Mi lehet a következmény?

Sikeres kihasználás esetén a támadó kódot futtathat a Node.js folyamat jogosultságaival. A hatás az adott alkalmazás és a konténer jogosultságaitól függ: érintheti a környezeti titkokat, fájlokat, adatkapcsolatokat és a szolgáltatás rendelkezésre állását. Egy váratlan folyamatleállás vagy dekódolási hiba vizsgálatra okot adhat, de önmagában nem bizonyít kihasználást.

A Node.js hivatalos kiadási közleménye a sérülékenységet és a javítást rögzíti; nem közöl általánosan megerősített, aktív támadási kampányt. A nyilvános demonstráció és az éles környezetben bizonyított támadás eltérő állítás. Biztonsági kommunikációban ezt a különbséget meg kell tartani.

Mely Node.js-verziók javítottak?

A Node.js projekt az alábbi első javított kiadásokat tette közzé 2026. október 21-én. A 22.x és 24.x LTS, a 26.x Current ág. Régebbi, támogatásból kikerült ágnál támogatott kiadásra kell áttérni, vagy a konkrét gyártói támogatás és javítás meglétét kell igazolni. Disztribúciós visszaportolásnál a csomagazonosítót és a CVE-re vonatkozó közleményt vizsgáld.

Node.js hivatalos 2026. október 21-i biztonsági kiadásai
Node.js-ágElső javított kiadásTeendő
22.x LTS22.23.4Frissítés erre vagy újabb javított kiadásra
24.x LTS24.22.1Frissítés erre vagy újabb javított kiadásra
26.x Current26.12.1Frissítés erre vagy újabb javított kiadásra
Régebbi ágakNincs új, normál upstream biztonsági kiadásTámogatott ágra váltás vagy igazolt gyártói javítás

Javítás éles rendszeren: ne állj meg a csomagfrissítésnél

Készíts leltárt minden éles Node.js-folyamatról, konténerről, serverless kiadásról és önálló binárisról. A fejlesztői gépen futó `node -v` nem bizonyítja az éles példány verzióját. Ellenőrizd az image-digestet és a konténerben futó binárist is.

Frissítsd az alapképet vagy a telepített Node.js-csomagot, építs új képet, cseréld le az összes futó replikát, és ellenőrizd a tényleges `process.version` értéket. Teszteld a fontos alkalmazásfunkciókat és a normál Brotli-forgalmat. Az `npm audit` hasznos a csomagfüggőségekhez, de nem igazolja önmagában a Node.js natív dekóderének javítását. A kapcsolódó tudásbázis-cikk pontos ellenőrzőlistát ad.

  • Rögzítsd a futó verziót, architektúrát, csomagforrást és képdigestet minden szolgáltatáshoz.
  • Nézd meg a külső Brotli-válaszokat és a bejövő törzset kibontó middleware-konfigurációt.
  • A deploy után igazold, hogy minden régi pod és processz megszűnt, és a naplók nem jeleznek regressziót.
  • Tarts meg incidensvizsgálati nyomokat, ha szokatlan tevékenység vagy összeomlás gyanúja merül fel.

Mit tehetsz, ha a frissítés késik?

Az érintett, nem megbízható Brotli-adat feldolgozásának ideiglenes korlátozása csökkentheti egyes útvonalak kockázatát, de működési mellékhatása lehet. Egy bejövő WAF-szabály nem védi a szolgáltatás által külső szervertől letöltött, tömörített választ. A proxy vagy CDN által látott forgalom sem feltétlenül fedi le az összes adatútvonalat.

A végleges javítás a sérülékeny Node.js-futtatókörnyezet cseréje. A csomagok frissítése, a puszta kódellenőrzés vagy egy sikeres funkcionális próba nem helyettesíti annak igazolását, hogy az éles processzek már az új binárist futtatják.

Gyakori kérdések

Minden Express-oldal érintett? A sérülékeny Node.js-verzió és a nem megbízható Brotli-adat dekódolása együtt számít. Az alkalmazás konfigurációját és a tényleges adatútvonalat kell vizsgálni.

Elég a `node -v` a laptopomon? Nem. A szerver, a konténer és a futó replika külön verziót használhat.

A javított verzió garantálja, hogy nem történt korábbi támadás? Nem. A frissítés a jövőbeli kihasználási útvonalat javítja; kompromittálódás gyanújánál külön incidensvizsgálat kell.

Node2Shell javítási útmutató

Nézd meg a saját rendszeredhez kapcsolódó megoldásunkat.

Node2Shell javítási útmutató

Források és további olvasnivaló

Montavio hírlevél

Építs jobb weboldalt.
Az első hónap tárhelyet mi adjuk.

Hasznos tippek weboldalakról, SEO-ról, biztonságról és online növekedésről – mellé pedig 1 hónap webtárhely ajándékba.

Dupla opt-in megerősítés szükséges. Az ajánlat új tárhely megrendelésére érvényes, egyszer használható fel. Adatvédelmi tájékoztató