Kritikus Brotli-hiba veszélyezteti a Node.js-alkalmazásokat

Kritikus biztonsági hibát találtak a Google Brotli dekóderében, amely a Node.js mellett több futtatókörnyezetet és hálózati szoftvert is érint. A CVE-2026-111497 távoli kódfuttatást, memóriaszivárgást vagy szolgáltatásmegtagadást okozhat.
- A CVE-2026-111497 a Brotli dekóder memóriakezelési hibája.
- A hiba távoli kódfuttatást, memóriaszivárgást vagy összeomlást okozhat.
- A javított Node.js verziók: 22.23.4, 24.22.1 és 26.12.1.
- A Node.js 20, 23 és 25 ágakhoz nem készül javítás.
- Támadási kísérleteket már rögzítettek, éles kompromittálást azonban nem jelentettek.
Egy hibás memóriaművelet áll a háttérben
A SentinelOne beszámolója szerint a Node.js projekt október 21-én adott ki biztonsági frissítéseket a CVE-2026-111497 azonosítójú hibához. A sérülékenység a Brotli tömörített adatok kibontásáért felelős dekóderében található. A hibát több néven is említik, köztük Node2Shell, Brotli2Shell, Broccoli2Shell és HTTP2Shell.
A probléma akkor jelentkezik, amikor a dekóder egy érvénytelen blokktípus-váltást nem utasít el megfelelően, hanem további bemenetet kér. A támadó által vezérelt adatok így egy nyolc bájtos belső puffer határán túl is íródhatnak. A Node.js szerint ennek következménye lehet a folyamat összeomlása, a folyamat memóriájának felfedése vagy távoli kódfuttatás.
A Google, amely a CVE-k számozási hatósága, 9,2-es értéket adott a hibának a CVSS v4.0 rendszerében. A CVE-leírás szerint a támadáshoz nem szükséges hitelesítés.
Több útvonalon is eljuthat a káros adat a dekóderhez
A Node.js önmagában futó alapértelmezett szervere nem válik automatikusan támadhatóvá. A dekódernek olyan adatot kell kapnia, amelyet a támadó befolyásolhat. Ez történhet közvetlenül a zlib.brotliDecompress() vagy a zlib.createBrotliDecompress() használatakor.
Az Express 5 és a body-parser 2 bizonyos útvonalai alapértelmezés szerint kibontják a Content-Encoding: br fejléccel küldött kérések törzsét. A beépített fetch() a Brotli-kódolású válaszokat automatikusan dekódolja, ezért egy rosszindulatú vagy kompromittált szerver a klienst is célozhatja. Az Imperva laboratóriumi környezetben mindkét útvonalon kódfuttatást mutatott be az arm64-es, hivatalos Node.js 24.22.0-lemezképen.
A SentinelOne szerint a sikertelen támadás is problémát okozhat, mivel az ismételt összeomlások szolgáltatásmegtagadást eredményezhetnek minden olyan szolgáltatásnál, amely támadó által befolyásolt Brotli-adatot dekódol.
A frissítés több terméket is érint
A Node.js 22.x, 24.x és 26.x ágaihoz már elérhető javítás. A friss változatok rendre a 22.23.4, a 24.22.1 és a 26.12.1. A Node.js 20, 23 és 25 már támogatáson kívüli ágak, ezekhez nem készül javítás, ezért támogatott verzióra kell váltani.
A hiba a Google Brotli 1.0.3 és 1.0.9 közötti, valamint az 1.1.0 és 1.2.0 verziókat érinti. A javított kiadások az 1.0.10, az 1.1.1 és az 1.2.1. Saját javítást adott ki többek között a Bun, a Microsoft .NET, a PHP for Windows, a Python Brotli és brotlicffi csomagja, az Envoy Proxy és az Istio is. Egy termék frissítése nem frissíti automatikusan a többi, Brotli-dekódert beágyazó komponenst.
A SentinelOne a frissítés után a folyamatok újraindítását és a konténerképek újraépítését javasolja. Ahol a javítás még nem telepíthető, a proxy- vagy terheléselosztó rétegben elutasíthatók a Content-Encoding: br fejlécet tartalmazó bejövő kérések.
Már látszanak támadási kísérletek
A nyilvános telemetria alapján támadási kísérleteket már rögzítettek mézcsapdákon, megerősített éles rendszerszintű kompromittálásról azonban október 29-ig nem jelent meg nyilvános beszámoló. Az ELLIO október 26-án Node.js 24.22.0-ra épített kérést látott, a Previdian pedig október 27-én rögzített egy kísérletet egy amerikai címről. A Previdian hangsúlyozta, hogy ezek a megfigyelések önmagukban nem bizonyítják a célpont sérülékenységét vagy a támadás sikerét.
A CISA október 27-én felvette a CVE-2026-111497-et az ismerten kihasznált sérülékenységek katalógusába. Az amerikai szövetségi civil ügynökségek számára november 10. a teljesítés határideje. A nyilvános bizonyító kód a Sysdig szerint az október 21-i bejelentést követő órákban megjelent, ezért a SentinelOne különösen az internet felől elérhető Express 5 szolgáltatások mielőbbi frissítését tartja szükségesnek.
SentinelOne: Node2Shell: Remote Code Execution via a Brotli Decoder Flaw


