HTTP2Shell: Kritikus sérülékenység fenyegeti a Brotli tömörítést használó alkalmazásokat

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

Egy széles körben használt adattömörítési könyvtár kritikus sérülékenysége miatt számos népszerű programozási környezet és webes alkalmazás válhat támadhatóvá. A CVE-2026-111497 azonosítón nyilvántartott, HTTP2Shell, illetve Node2Shell néven is emlegetett biztonsági hiba távoli kódfuttatást, érzékeny adatok kiszivárgását és szolgáltatásleállást is lehetővé tehet.

A sérülékenység különösen nagy kockázatot jelent, mivel nem egyetlen alkalmazást érint, hanem a Google által fejlesztett, számos szoftverbe beépített Brotli könyvtárban található.

Mi az a Brotli?

A Brotli egy veszteségmentes tömörítési algoritmus, amelyet elsősorban webes tartalmak, például HTML, CSS és JavaScript-fájlok méretének csökkentésére használnak. Segítségével gyorsabbá és hatékonyabbá válik az internetes adatátvitel, ezért számos HTTP-kliens, webszerver és alkalmazásfejlesztési környezet támogatja. A most azonosított hiba azonban éppen a tömörített adatok visszaállítását végző dekóderben található, így a támadók speciálisan előállított adatfolyamok segítségével idézhetnek elő memóriakezelési problémákat.

Sebezhetőség részletei

A 9.2-es CVSS 4.0 pontszámú, kritikus besorolású sérülékenység a Brotli 1.0.3 és 1.2.0 közötti verzióit érinti, platformtól függetlenül. A probléma lényege, hogy a dekóder bizonyos hibásan formázott adatok feldolgozásakor nem megfelelően kezeli a hibajelzéseket. Emiatt a program olyan adatok feldolgozását is folytathatja, amelyeket el kellene utasítania, és a rendelkezésre álló memóriaterületen kívülre írhat. Az így kialakuló memóriasérülés alkalmazásösszeomláshoz, adatvesztéshez, információszivárgáshoz, megfelelő körülmények között pedig akár tetszőleges kód végrehajtásához is vezethet.

A támadás különlegessége, hogy mindkét kommunikációs irányban megvalósítható. Egy rosszindulatú kliens megfelelően kialakított, Brotli-tömörítésű HTTP-kéréssel támadhatja a sérülékeny szervert, míg egy támadó által ellenőrzött szerver fertőzött válaszüzenetet küldhet az azt feldolgozó alkalmazásnak. A támadáshoz nincs szükség előzetes hitelesítésre, amennyiben a rosszindulatú adatfolyam eléri a sérülékeny dekódert.

A hibát először október 21-én hozták nyilvánosságra a Node.js kapcsán, majd másnap a Python egyes csomagjainak érintettsége is ismertté vált. Október 23-ra kiderült, hogy a probléma jóval szélesebb körben jelentkezik: a Node.js és a Python mellett többek között a Bun, az Envoy, az Istio, valamint a Brotli könyvtárat használó egyéb HTTP-kliensek és szolgáltatások is érintettek lehetnek.

A sérülékenységet az OpenAI már 2026 februárjában felfedezte, és a Brotli forráskódjában az alapvető programozási hibát akkor ki is javították. A módosítás biztonsági jelentőségét azonban kezdetben nem ismerték fel, ezért a javított kódot tartalmazó hivatalos kiadások csak hónapokkal később jelentek meg. Ez különösen fontos körülmény, mivel a Brotli számos alkalmazásba közvetlenül beépül, így az érintett fejlesztőknek és szoftvergyártóknak saját frissítéseket kell kiadniuk.

Érintett könyvtárak és projektek

A Python esetében a probléma többek között a Brotli és a brotlicffi csomagokat érinti, amelyek közvetlenül vagy más függőségeken keresztül számos alkalmazásban megtalálhatók. A Brotli csomagot havonta mintegy 83 millió alkalommal töltik le, ami jól érzékelteti a lehetséges érintettség nagyságát. A requests, urllib3, HTTPX, aiohttp és Scrapy könyvtárak bizonyos konfigurációk mellett automatikusan használják a Brotli-tömörítést, ezért egy alkalmazás akkor is veszélyeztetett lehet, ha saját forráskódjában egyáltalán nem hivatkozik a sérülékeny könyvtárra.

Csomag Érintett verzió Javított verzió Brotli (PyPI) 1.2.0 és korábbi 1.2.1 brotlicffi (PyPI) 1.2.0.x 1.2.1.0

A javítások már több érintett szoftverhez is elérhetők. A Node.js esetében a 22.23.4, 24.22.1 és 26.12.1, a natív Brotli könyvtárnál az 1.2.1, illetve a régebbi támogatott ágakhoz kiadott 1.0.10 és 1.1.1 verziók tartalmazzák a szükséges módosításokat. A Bun 1.4.4-es kiadása szintén tartalmazza a javítást, míg az Envoy és Istio esetében az adott kiadási ághoz tartozó biztonsági frissítés telepítése szükséges.

Projekt Javítás státusza Javított verziók Megjegyzés Node.js Elérhető 22.23.4, 24.22.1, 26.12.1 Bun Elérhető 1.4.4 Brotli 1.2.1. Envoy Elérhető 1.40.0, 1.39.3, 1.38.6, 1.37.8 1.36.12 is tartalmazza a javítást, de a 1.36 már nem támogatott. hazsnáljon támogatott branch-et. Istio Elérhető 1.29.9, 1.30.6, 1.31.2 Az 1.29 EOL, használjon támogatott verziót. Google Brotli (upstream) Elérhető 1.0.10, 1.1.1, 1.2.1

A szakértők hangsúlyozzák, hogy nem elegendő kizárólag a közvetlenül telepített csomagokat ellenőrizni. A sérülékeny Brotli könyvtár más alkalmazások függőségeként, konténerekben vagy statikusan fordított programokban is jelen lehet. Ezért a frissítések után szükség lehet az alkalmazások és konténerek újrafordítására, ismételt telepítésére, valamint a futó szolgáltatások újraindítására is. Az operációs rendszerek gyártói emellett úgynevezett backport javításokat is alkalmazhatnak, vagyis a biztonsági módosításokat a korábbi verziószám megtartásával építhetik be.

Amennyiben a javítás nem telepíthető azonnal, átmeneti védekezésként javasolt a Brotli-tömörítésű adatok dekódolásának letiltása. A bejövő HTTP-kéréseknél a Content-Encoding: br fejlécet tartalmazó üzeneteket még a sérülékeny dekóder elérése előtt célszerű elutasítani. A kimenő kérések esetében az Accept-Encoding fejlécből el kell távolítani a Brotli támogatását jelző br értéket, ugyanakkor ez önmagában nem nyújt teljes védelmet, mert egy rosszindulatú szerver a kliens által jelzett beállításoktól függetlenül is küldhet Brotli-tömörítésű választ.

Fontos ugyanakkor, hogy nem minden Brotli-támogatással rendelkező rendszer sérülékeny automatikusan. Az Apache szabványos mod_brotli modulja például alapértelmezés szerint csak tömörítést végez, nem dekódol, így ezen a működési útvonalon nem érintett. Az Envoy esetében pedig a sérülékenység kihasználásához a Brotli decompressor szűrő megfelelő konfigurációja szükséges.

(forrás)