Veikleiki (CVE-2026-111497, dulnefni Broccoli2Shell og HTTP2Shell) hefur fundist í bókasafni sem inniheldur tilvísunarútfærslu Brotli gagnaþjöppunarafkóðarans. Þessi veikleiki leiðir til biðminnisyfirflæðis við vinnslu sérsmíðaðra þjappaðra gagna. Samkvæmt Google er hægt að nota þennan veikleika til að framkvæma kóða fjarlægt þegar ráðist er á verkefni sem nota opinberu Brotli afkóðunarútfærsluna. Meðal verkefna sem verða fyrir áhrifum eru Node.js, Bun, Envoy, Istio, vafrar, milliþjónar, HTTP biðlarar, HTTP netþjónar, skjalavörn, milliþjónar, UEFI vélbúnaðarforrit, JPEG XL skoðarar, innihaldsafkóðunarbókasöfn fyrir Python, Ruby, Java, PHP og .NET, og tengdir ósjálfstæðir aðilar.
Vandamálið var uppgötvað af OpenAI í febrúar á þessu ári og lokað í Brotli kóðagrunninum með því að henda ógildum straumum við afkóðun. Þann 22. október voru birtar uppfærslur fyrir Brotli 1.0.10, 1.1.1 og 1.2.1, þar sem lagfæringin var tilkynnt og undirliggjandi vandamálið var tekið á. Sama dag var búið til frumgerð af árás sem gerði kleift að framkvæma kóða fjartengt í tilraunastofuaðstæðum með því að nota óhefðbundnar byggingar (hefðbundnar byggingar hrundu). Imperva uppgötvaði síðar árás á hefðbundnar Node.js 24.22.0 byggingar. Linux- umhverfi á ARM64 kerfinu.
Veikleikinn leiðir til þess að biðminni er skrifað utan marka vegna óviðeigandi villumeðhöndlunar við blokkagreiningu í þjappuðum straumi. Fallið DecodeBlockTypeAndLength() skilaði aðeins gildum fyrir satt og ósatt í stað villukóða, sem kemur í veg fyrir að kallandi geti greint á milli straumsskemmda og ástands sem krefst þess að frekari gögn séu send til fallsins. Ef röng gerð þjappaðra gagnablokka var tilgreind í straumnum, túlkaði afkóðarinn það ekki sem villu, heldur sem gögn utan marka sem krefst frekari lesturs úr straumnum. Hins vegar, þar sem úthlutað biðminni var ekki hannað til að rúma frekari gögn sem lesin voru, voru gögnin skrifuð á svæði utan biðminnisins sem geymdi innra ástand afkóðarans.
Verkefni sem verða fyrir áhrifum:
- Tilvísunarbókasafnið Brotli, vandamál sem hefur verið til staðar frá útgáfu 1.0.3 og var lagað í uppfærslum 1.0.10, 1.1.1 og 1.2.1, hefur áhrif á forrit og bókasöfn sem nota libbrotlidec bókasafnið.
- JavaScript-kerfi Node.js var lagfært í uppfærslum 26.12.1, 24.22.1 og 22.23.4. Forrit sem nota fetch() aðferðina til að óska eftir efni frá þriðja aðila, sem afkóðar sjálfkrafa HTTP svör með hausnum "Content-Encoding: br", geta verið viðkvæm. Varnarleikinn birtist einnig þegar kallað er beint á zlib.brotliDecompress*(), createBrotliDecompress() og brotli.decompress() aðferðirnar til að þjappa efni frá þriðja aðila, eða þegar mótteknar eru HTTP beiðnir sem eru greindar í gegnum Express 5 og body-parser 2.x bókasöfnin.
- Python-pakkarnir brotli og brotlicffi (lagfæring lögð til í útgáfu 1.2.1) og verkefni sem nota þau, þar á meðal vinsælu bókasöfnin urllib3, aiohttp, httpx og Scrapy, sem afkóða svör með hausnum "Content-Encoding: br" þegar aðgangur er að utanaðkomandi vefauðlindum.
- HTTP netþjónar, HTTP milliþjónar, HTTP viðskiptavinir og vafrar sem styðja Brotli þjöppun ("Accept-Encoding: br"). Apache httpd kemur með mod_brotli (sjálfgefið óvirkt). Þriðja aðila eining, ngx_brotli, er í boði fyrir nginx (brotli útgáfan í ósjálfstæðum kerfum hefur verið uppfærð í nýjustu útgáfuna). Í Chrome/Chromium og Firefox hefur vandamálið þegar verið lagað í fyrri uppfærslu. Í milliþjóni-netþjónn Veikleiki í Envoy hefur verið lagfærður í útgáfum 1.40.0, 1.39.3, 1.38.6, 1.37.8 og 1.36.12.
- Keyrslutími .NET þegar BrotliDecoder, BrotliStream og HttpClient aðferðirnar eru notaðar í forriti. Ekki hefur enn verið lagfært fyrir veikleikanum.
- PHP brotli viðbót þegar brotli_uncompress() fallið er notað. Viðgerð í vinnslu.
- Ruby-pakkinn Brotli var berskjaldaður fyrir árásum sem notuðust við Brotli.inflate aðferðina. Ekki hefur enn verið lagfærður veikleikinn.
- DuckDB við innflutning á þjappaðri Parquet skrá. Viðgerð í vinnslu.
- ClickHouse gagnagrunnskerfið. Viðgerð í vinnslu.
- YDB gagnagrunnskerfi. Veikleikinn hefur ekki enn verið lagfærður.
- Apache Arrow við innflutning á þjappaðri Parquet skrá. Lagfæring í vinnslu.
- libjxl (notar Brotli til að þjappa JPEG XL lýsigögnum).
Leiðrétting í undirbúningi. - Skjalasafnsforritin NanaZip, 7-Zip-zstd og p7zip eru berskjölduð þegar .br skrár eru pakkaðar upp. Varnarleysið er enn til staðar.
- MuPDF. Ekki hefur verið lagfært fyrir veikleikann.
- UEFI vélbúnaðarútgáfa byggt á EDK II og UEFITool, þjappað með Brotli. Lagfæring er í undirbúningi fyrir EDK II og UEFITool.
- JavaScript rammaverk Bun. Veikleikinn var lagfærður í útgáfu 1.4.4.
- Istio, stjórnunarvettvangur fyrir örþjónustur. Veikleikinn var lagfærður í útgáfum 1.29.9, 1.30.6 og 1.31.2.
- curl og libcurl, þá birtist veikleikinn þegar veik útgáfa af libbrotlidec er til staðar í ósjálfstæðum kerfum.
- Letursnið Parsers for the Web Open Font (WOFF), sem notar
Brótali. - Brotli4j, SumatraPDF, Ghostscript, CatBoost og YTsaurus. Veikleikinn var lagfærður í uppfærslu.
Heimild: opennet.ru
