A Brotli hibája miatt több futtatókörnyezetet is külön kell frissíteni
A rendszer Brotli-könyvtárának frissítése önmagában nem védi meg azokat az alkalmazásokat, amelyek saját másolatot tartalmaznak belőle. Az NKI figyelmeztetése szerint a kritikus dekóderhiba többek között a Node.js, a Bun, a Python és az Envoy környezetét érinti; a Microsoft a .NET érintett kiadásaihoz is soron kívüli javítást adott ki.
Tömörített kérés és válasz is elérheti a hibás kódot
A CVE-2026-111497 azonosítójú sebezhetőséget HTTP2Shell, Node2Shell és Broccoli2Shell néven is emlegetik. A Google Brotli veszteségmentes tömörítésével webes tartalmak méretét csökkentik. A probléma a visszaállításukat végző dekóderben található: hibás adatfolyamnál folytathatja a feldolgozást, és a kijelölt memóriaterületen kívülre írhat.
Ennek alkalmazásösszeomlás, érzékeny információk kiszivárgása, megfelelő körülmények között pedig távoli kódfuttatás lehet a következménye. Előzetes hitelesítés sem szükséges, ha a támadó által összeállított adat eljut a sérülékeny kódhoz. Rosszindulatú kliens tömörített kéréssel támadhat szervert, egy ellenőrzött kiszolgáló pedig veszélyes választ küldhet az azt letöltő alkalmazásnak.
A Google 9,2-es CVSS 4.0 pontszámot adott a hibának. Ez a műszaki súlyosságot jelzi, nem az észlelt támadásokat. Nyilvános tesztkód már megjelent, de a források nem számolnak be éles, rosszindulatú kihasználásról.
Nem minden Brotli-támogatás jelent érintettséget
A kockázat feltétele, hogy a program kívülről származó Brotli-adatot bontson ki. A Node.js és a Bun esetében ilyen útvonal a beépített fetch() által letöltött tömörített válasz. Az Express 5 és a body-parser 2 a beérkező kérések törzsét is kibonthatja; egy egyszerű Node.js HTTP-szerver viszont ezt önmagában nem végzi el.
Python esetén a Brotli vagy a brotlicffi csomag jelenléte miatt egyes HTTP-kliensek automatikusan feldolgozhatják az ilyen válaszokat. Saját kódbeli közvetlen hivatkozás sem feltétlenül kell hozzá. Az Envoy és az Istio akkor érintett, ha engedélyezték a Brotli-kibontást.
A Microsoft szerint a .NET és az ASP.NET Core alaptelepítésében ez nincs bekapcsolva. Veszélyeztetett lehet viszont az ASP.NET Core kéréseinek kibontása, a HttpClient automatikus válaszfeldolgozása vagy a .NET Brotli-kezelő függvényeinek közvetlen használata. A gyártó hálózaton keresztüli jogosultságnövelésre figyelmeztet.
Ezek a kiadások tartalmazzák a javítást
A szükséges módosítás termékenként külön kiadásba került. Az NKI az Envoy 1.36 és az Istio 1.29 ágánál már támogatott változat használatát javasolja.
| Összetevő | Javított kiadás |
|---|---|
| Google Brotli | 1.0.10, 1.1.1, 1.2.1 |
| Node.js | 22.23.4, 24.22.1, 26.12.1 |
| Bun | 1.4.4 |
| Python Brotli | 1.2.1 |
| Python brotlicffi | 1.2.1.0 |
| Envoy, támogatott ágak | 1.40.0, 1.39.3, 1.38.6, 1.37.8 |
| Istio, támogatott ágak | 1.30.6, 1.31.2 |
| .NET 8 | 8.0.33 |
| .NET 9 | 9.0.22 |
| .NET 10 | 10.0.14 |
| .NET 11 | Release Candidate 3 |
A Microsoft a soron kívüli csomagok mielőbbi telepítését javasolja. Az operációs rendszerek gyártói korábbi verziószám megtartásával is beépíthetik a biztonsági módosítást.
A beágyazott másolatok és a futó folyamatok külön figyelmet igényelnek
A Brotli számos alkalmazásba közvetlenül beépül, ezért a rendszerkönyvtár cseréje nem javítja meg a saját példányt használó programokat. A sérülékeny kód függőségekben, konténerekben és statikusan fordított állományokban is jelen lehet.
Az NKI ezért nemcsak a közvetlenül telepített csomagok ellenőrzését javasolja. A módosítás után az érintett folyamatokat újra kell indítani, a konténerképeket pedig újra kell építeni és telepíteni. A futó szolgáltatás az újraindításig a régi dekódert használja.
A bejövő kérések szűrése nem zárja le a válaszok felőli utat
Ha a javítás még nem telepíthető, a források a nem megbízható Brotli-adatok kibontásának leállítását javasolják. A beérkező Content-Encoding: br kéréseket még a dekóder előtt kell elutasítani, például a proxynál vagy a tűzfalnál.
Ez nem védi ki a más szerverektől letöltött rosszindulatú válaszokat. Az Accept-Encoding fejlécből a br érték elhagyása sem elegendő: a kiszolgáló ettől függetlenül küldhet Brotli-tartalmat. Python esetén átmeneti megoldásként a Brotli és a brotlicffi csomag eltávolítását ajánlják; az érintett HTTP-kliensek ilyenkor gzip és deflate használatára térnek vissza.
A cikk mesterséges intelligencia segítségével készült; a szerkesztőség ellenőrizte és jóváhagyta. Impresszum