Egy tömörítő, amiről nem tudtad, hogy használod

A Brotli tömörítő hibája egy hét alatt soron kívüli javításokat indított a Node.js-ben, a .NET-ben, a PHP-ban és a Pythonban. Tudod, hol van nálad?

Éjszakai irodában Blue nagyítóval hajol egy szétnyílt, egymásba ágyazott fémdoboz fölé, amelynek a belsejében egy apró alkatrész vörösen izzik; mögötte Red félárnyékban mosolyog, Péter pedig a háttérből figyeli őket.

Mi történt

Ismered a matrjoskát? Kinyitod a nagy babát, benne ott egy kisebb, abban egy még kisebb, a végén pedig egy egészen apró, amit elsőre észre sem veszel. A mai szoftverek pont ilyenek. A weboldalad egy keretrendszerben fut, az egy futtatókörnyezetben, abban pedig ott lapul egy csomó apró, beépített könyvtár. Most az egyik legbelső baba repedt meg.

Ezt a babát Brotlinak hívják. A Google nyílt forrású tömörítőkönyvtára, a web egyik alapvető tömörítése a gzip mellett: amikor a böngésző és a szerver összecsomagolva küld adatot, sokszor ezt használják. A kibontást végző részében, a dekóderben határon túli írási hibát (out-of-bounds write) találtak, ez a CVE-2026-111497. Magyarul: egy szándékosan elrontott tömörített adatfolyam kibontás közben a program egy belső memóriaterületén túlra írhat. A következmény összeomlás, memóriaszivárgás, és bizonyos körülmények között akár távoli kódfuttatás. A sajtó több néven emlegeti: Node2Shell, HTTP2Shell, a kutatók egy része tréfásan Broccoli2Shellnek hívja.

A javított Brotli-verziók (1.0.10, 1.1.1 és 1.2.1) 2026. október 21-én jelentek meg. És itt kezdődik az igazi történet. Mivel rengeteg szoftver saját példányt épít be a könyvtárból, egy hét alatt sorra jöttek a soron kívüli javítások: október 21-én a Node.js, október 22–23-án a Python Brotli-csomagjai, a Bun, az Envoy és az Istio, október 25-én, egy vasárnap, a Microsoft a .NET 8, 9 és 10, a Visual Studio és a PowerShell javításával. A PHP pedig október 26. körül öt napon belül másodszor építette újra a Windows-csomagjait, alig néhány nappal a PHP2Shell-javítások után.

Ami engem a leginkább megfogott: a gyökérokot javító módosítás a beszámolók szerint már 2026 februárjában bekerült a Brotli forráskódjába. Csak akkor senki nem jelölte biztonsági hibának, és kiadás sem készült belőle. A hibát végül az OpenAI Codex Security csapata jelentette, a Node.js nekik tulajdonítja a felfedezést.

Mennyire kell aggódni? Vadonbeli támadásról 2026. október 23-ig nem érkezett jelentés, és a hiba a CISA kihasznált sebezhetőségeket gyűjtő katalógusában (KEV) sem szerepelt. Nyilvános koncepcióbizonyíték (PoC, vagyis működő demókód) viszont van, és az Imperva kutatói egy hivatalos Node.js-buildön kódfuttatást is bemutattak, igaz, nem minden próbálkozásra. A súlyosság vitatott: a pontszámok 8,1 és 9,2 között szórnak, és a legvalószínűbb hatás a szolgáltatásmegtagadás, vagyis hogy leáll a szolgáltatásod.

Miért számít neked

Ha a cégednek van weboldala, webshopja vagy API-ja, és Node.js, .NET, PHP (Windows alatt) vagy Python fut alatta, a Brotli jó eséllyel ott van benne. Akkor is, ha a kódotokban sehol nem szerepel ez a szó: elég, ha egy HTTP-kliens automatikusan kibontja a tömörített választ, vagy ha a csomag egy másik csomag függőségeként, úgynevezett tranzitív függőségként települt.

A csapda az, hogy a szokásos rutin itt nem elég. Ha a rendszer Brotliját frissíted, az nem javítja a saját példányt beépítő alkalmazásokat. És fordítva: a frissített csomag sem véd, amíg a futó folyamatot újra nem indítod, vagy a konténerképet újra nem építed.

Magyar érintettség nem ismert, és hazai hatósági figyelmeztetést a kutatás idején nem találtunk. Mivel sok hazai webes szolgáltatás .NET-en vagy Node.js-en fut, valószínű, hogy itthon is sokakat érint, de erről konkrét adat nincs.

Szakmabelieknek: technikai részletek
  • CVE: CVE-2026-111497, határon túli írás a Brotli C-dekóder blokktípus-váltást kezelő részében. Érintett: Brotli 1.0.3–1.2.0; javítva: 1.0.10, 1.1.1, 1.2.1.
  • Pontszámok: Google CVSS 4.0: 9,2 (kritikus); Red Hat CVSS 3.1: 8,1 (AV:N/AC:H/PR:N/UI:N); Microsoft CVSS 3.1: 8,1, „Exploitation More Likely”; Node.js: „High”.
  • Javított verziók: Node.js 22.23.4, 24.22.1, 26.12.1 (a 20/23/25 életciklus végi, javítás nélkül); .NET 8.0.33, 9.0.22, 10.0.14, 11 RC3; PHP Windows 8.5.12-1, 8.4.27-1, 8.3.36-1, 8.2.35-1; Python Brotli 1.2.1, brotlicffi 1.2.1.0; Bun 1.4.4; Envoy 1.36.12, 1.37.8, 1.38.6, 1.39.3, 1.40.0; Istio 1.29.9, 1.30.6, 1.31.2; Go andybalholm/brotli v1.2.7.
  • Elérési utak: Node.js zlib, a beépített fetch automatikus kibontása, Express 5 törzsfeldolgozás; ASP.NET Core request decompression és HttpClient automatikus kibontás (alapból kikapcsolva); PHP cURL, ha az automatikus kibontás be van kapcsolva; Python urllib3/requests, httpx, aiohttp, ha a csomag telepítve van.
  • Linux: a Node.js és a .NET egyes változatai a rendszer Brotliját, mások a beépítettet használják; a disztribúció saját közleménye a mérvadó (backportolt verziószámok).
  • Még javítatlan a nyilvános tracker szerint (október 26.): többek közt DuckDB, Apache Arrow, 7-Zip-zstd, p7zip, EDK II.
  • ATT&CK (szerkesztői leképezés): T1190, T1499, T1059, T1105, T1552.
  • Észlelés: maga a túlírás nem látszik; a kihasználás utáni viselkedést figyeld (összeomlás után programindítás ugyanabban a munkaterhelésben, shell a webes folyamat alatt, váratlan kimenő kapcsolat), valamint a szokatlan végpontokra érkező Brotli-tömörített kéréseket.
  • Indikátorok: hivatalos IOC-lista nem ismert. Hivatalos ajánlások: Microsoft .NET-biztonsági közlemény (dotnet/announcements #494), Red Hat RHSB-2026-015, Node.js 2026. októberi biztonsági kiadás, PHP Windows-letöltési oldal.

Háttéranyag szakmabelieknek

A teljes kutatás egy PDF-ben

Idővonal, szereplők, hogyan működik a támadás, teendők célcsoportonként, szakmai részletek és forrásértékelés. Egy helyen, nyomtatható formában, továbbküldhetően.

PDF · 8 oldal · 237 KB · kutatási változat v1

PDF megnyitása (magyar) English version (PDF)

Források

AI-csapattal készült, átnézte: Péter

Az AI-csapat
Összegyűjtötte és összevetette a gyártói, kutatói és sajtóforrásokat, elkészítette a mélykutatást és a háttéranyagot, megírta a vázlatot és az angol fordítást, és kitalálta az indexkép ötletét.
Én
Kiválasztottam a témát és a szöget, átvettem az indexkép ötletét, megírtam a zárógondolatomat, amelyet az AI-csapat bővebben kifejtett, átnéztem és jóváhagytam a cikket.

Megjelenés előtt minden állítást én ellenőriztem, és a véleményrészek az enyémek.