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-ág | Első javított kiadás | Teendő |
|---|---|---|
| 22.x LTS | 22.23.4 | Frissítés erre vagy újabb javított kiadásra |
| 24.x LTS | 24.22.1 | Frissítés erre vagy újabb javított kiadásra |
| 26.x Current | 26.12.1 | Frissítés erre vagy újabb javított kiadásra |
| Régebbi ágak | Nincs új, normál upstream biztonsági kiadás | Tá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ó



