Udhaifu mkubwa katika kivumbuzi cha Brotli huathiri Node.JS, Bun, vivinjari, wateja wa HTTP, na miradi mingine.

Udhaifu (CVE-2026-111497, majina ya msimbo Broccoli2Shell na HTTP2Shell) umetambuliwa katika maktaba iliyo na utekelezaji wa marejeleo wa kipokonya data cha Brotli. Udhaifu huu husababisha kufurika kwa bafa wakati wa kuchakata data iliyobanwa iliyotengenezwa maalum. Kulingana na Google, udhaifu huu unaweza kutumika kwa utekelezaji wa msimbo wa mbali wakati wa kushambulia miradi inayotumia utekelezaji rasmi wa kipokonya Brotli. Miradi iliyoathiriwa ni pamoja na Node.js, Bun, Envoy, Istio, vivinjari vya wavuti, seva za proksi, wateja wa HTTP, seva za HTTP, vihifadhi kumbukumbu, seva za proksi, programu dhibiti ya UEFI, watazamaji wa JPEG XL, maktaba za usimbaji wa maudhui kwa Python, Ruby, Java, PHP, na .NET, na utegemezi wao unaohusiana.

Suala hilo liligunduliwa na OpenAI mnamo Februari mwaka huu na kuzuiwa katika msimbo wa Brotli kwa kutupa mitiririko batili wakati wa kusimbua msimbo. Mnamo Oktoba 22, matoleo ya kiraka ya Brotli 1.0.10, 1.1.1, na 1.2.1 yalichapishwa, yakitangaza waziwazi marekebisho na kushughulikia suala la msingi. Siku hiyo hiyo, unyonyaji wa mfano uliundwa ambao uliruhusu utekelezaji wa msimbo wa mbali katika hali ya maabara kwa kutumia miundo isiyo ya kawaida (miundo ya kawaida ingeanguka). Baadaye Imperva iligundua shambulio kwenye miundo ya kawaida ya Node.js 24.22.0. Linux- mazingira kwenye mfumo wa ARM64.

Udhaifu huu husababisha uandishi wa bafa nje ya mipaka kutokana na utunzaji usiofaa wa hitilafu wakati wa uchanganuzi wa vizuizi katika mtiririko uliobanwa. Kitendakazi cha DecodeBlockTypeAndLength() kilirudisha thamani za kweli na si kweli pekee badala ya msimbo wa hitilafu, na kumzuia mpigaji kutofautisha kati ya ufisadi wa mtiririko na sharti linalohitaji data ya ziada kupitishwa kwa kitendakazi. Ikiwa aina isiyo sahihi ya kizuizi cha data kilichobanwa ilibainishwa katika mtiririko, kichanganuzi kilitafsiri si kama hitilafu, bali kama sharti la nje ya data linalohitaji usomaji wa ziada kutoka kwa mtiririko. Hata hivyo, kwa kuwa bafa iliyotengwa haikuundwa ili kutoshea usomaji wa data ya ziada, data iliandikwa kwa eneo nje ya bafa iliyohifadhi hali ya ndani ya kichanganuzi.

Miradi iliyoathiriwa:

  • Maktaba ya marejeleo ya Brotli, tatizo ambalo limekuwepo tangu kutolewa kwa 1.0.3 na lilitatuliwa katika masasisho 1.0.10, 1.1.1, na 1.2.1, huathiri programu na maktaba zinazotumia maktaba ya libbrotlidec.
  • Jukwaa la JavaScript la Node.js lilirekebishwa katika masasisho 26.12.1, 24.22.1, na 22.23.4. Programu zinazotumia mbinu ya fetch() kuomba maudhui ya wahusika wengine, ambayo husimbua majibu ya HTTP kiotomatiki kwa kutumia kichwa cha habari cha "Content-Encoding: br", zinaweza kuwa hatarini. Udhaifu huo pia hujitokeza wakati wa kupiga simu moja kwa moja mbinu za zlib.brotliDecompress*(), createBrotliDecompress(), na brotli.decompress() ili kupunguza kasi ya ...
  • Vifurushi vya Python brotli na brotlicffi (fix iliyopendekezwa katika toleo la 1.2.1) na miradi inayovitumia, ikiwa ni pamoja na maktaba maarufu urllib3, aiohttp, httpx, na Scrapy, ambazo hutambua majibu kwa kutumia kichwa cha habari cha "Content-Encoding: br" wakati wa kufikia rasilimali za wavuti za nje.
  • Seva za HTTP, proksi za HTTP, wateja wa HTTP, na vivinjari vya wavuti vinavyounga mkono mgandamizo wa Brotli ("Kubali-Usimbaji: br"). Apache httpd husafirishwa na mod_brotli (imezimwa kwa chaguo-msingi). Moduli ya mtu wa tatu, ngx_brotli, inapatikana kwa nginx (toleo la brotli katika utegemezi limesasishwa hadi toleo jipya zaidi). Katika Chrome/Chromium na Firefox, tatizo tayari limetatuliwa katika sasisho lililopita. Katika proksi-seva Udhaifu wa mjumbe umerekebishwa katika matoleo 1.40.0, 1.39.3, 1.38.6, 1.37.8, 1.36.12.
  • Muda wa utekelezaji wa .NET unapotumia mbinu za BrotliDecoder, BrotliStream, na HttpClient katika programu. Udhaifu bado haujarekebishwa.
  • Kiendelezi cha brotli cha PHP unapotumia kitendakazi cha brotli_uncompress(). Urekebishaji unaendelea.
  • Kifurushi cha Ruby Brotli kilikuwa katika hatari ya kuathiriwa na matumizi kwa kutumia mbinu ya Brotli.inflate. Udhaifu huo bado haujarekebishwa.
  • DuckDB inapoingiza faili za Parquet zilizobanwa. Marekebisho yanaendelea.
  • ClickHouse DBMS. Marekebisho yanaendelea.
  • YDB DBMS. Udhaifu bado haujarekebishwa.
  • Mshale wa Apache unapoingiza faili za Parquet zilizobanwa. Urekebishaji unaendelea.
  • libjxl (hutumia Brotli kwa ajili ya kubana metadata ya JPEG XL).
    Marekebisho katika maandalizi.
  • Vihifadhi vya NanaZip, 7-Zip-zstd, na p7zip vinaweza kuathiriwa wakati wa kufungua faili za .br. Udhaifu unabaki.
  • MuPDF. Udhaifu haujarekebishwa.
  • Programu dhibiti ya UEFI inayotegemea EDK II na UEFITool, iliyobanwa na Brotli. Marekebisho yanaandaliwa kwa EDK II na UEFITool.
  • Mfumo wa JavaScript wa Bun. Udhaifu ulirekebishwa katika toleo la 1.4.4.
  • Istio, mfumo wa usimamizi wa huduma ndogo. Udhaifu ulirekebishwa katika matoleo ya 1.29.9, 1.30.6, na 1.31.2.
  • curl na libcurl, udhaifu hujitokeza wakati toleo dhaifu la libbrotlidec lipo katika vitegemezi.
  • Vichanganuzi vya umbizo la fonti ya Wavuti Huria (WOFF), ambayo hutumia
    Brotli.
  • Brotli4j, SumatraPDF, Ghostscript, CatBoost, na YTsaurus. Udhaifu ulirekebishwa katika sasisho.

Chanzo: opennet.ru

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS 🔥 Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster