Brotli өгөгдөл шахалтын декодлогчийн лавлагааны хэрэгжилтийг агуулсан номын санд эмзэг байдал (CVE-2026-111497, Broccoli2Shell болон HTTP2Shell гэсэн код нэртэй) илэрсэн байна. Энэхүү эмзэг байдал нь тусгайлан боловсруулсан шахсан өгөгдлийг боловсруулах үед буфер халих шалтгаан болдог. Google-ийн мэдээлснээр энэхүү эмзэг байдлыг Brotli-ийн албан ёсны декодлогчийн хэрэгжилтийг ашигладаг төслүүдэд халдах үед алсаас код гүйцэтгэхэд ашиглаж болно. Нөлөөлөлд өртсөн төслүүдэд Node.js, Bun, Envoy, Istio, вэб хөтөч, прокси сервер, HTTP клиент, HTTP сервер, архивлагч, прокси сервер, UEFI firmware, JPEG XL үзүүлэгч, Python, Ruby, Java, PHP, болон .NET-ийн контент декодлогчийн сангууд болон тэдгээртэй холбоотой хамаарлууд орно.
Энэ асуудлыг OpenAI энэ оны 2-р сард илрүүлж, декодлох явцад хүчингүй урсгалуудыг устгаснаар Brotli кодын баазад хаасан. 10-р сарын 22-нд Brotli 1.0.10, 1.1.1, болон 1.2.1 хувилбаруудын засваруудыг нийтэлж, засварыг тодорхой зарлаж, үндсэн асуудлыг шийдвэрлэсэн. Мөн өдөр стандарт бус угсралтыг ашиглан лабораторийн нөхцөлд кодыг алсаас гүйцэтгэх боломжийг олгодог туршилтын эксплойтыг бүтээсэн (стандарт угсралтууд гацдаг). Хожим нь Imperva нь стандарт Node.js 24.22.0 угсралтууд руу халдлага үйлдсэнийг илрүүлсэн. Linux- ARM64 систем дээрх орчин.
Шахагдсан урсгалд блок задлан шинжлэх явцад алдааг буруу боловсруулснаас болж энэ эмзэг байдал нь хязгаараас гадуурх буфер бичихэд хүргэдэг. DecodeBlockTypeAndLength() функц нь алдааны кодын оронд зөвхөн үнэн ба худал утгуудыг буцаадаг бөгөөд энэ нь дуудагч нь урсгалын эвдрэл болон функцэд нэмэлт өгөгдөл дамжуулах шаардлагатай нөхцөлийг ялгахаас сэргийлдэг. Хэрэв урсгалд буруу шахсан өгөгдлийн блокийн төрлийг зааж өгсөн бол декодлогч үүнийг алдаа гэж биш, харин урсгалаас нэмэлт унших шаардлагатай өгөгдлийн гадуурх нөхцөл гэж тайлбарладаг. Гэсэн хэдий ч хуваарилагдсан буфер нь нэмэлт өгөгдөл уншихад зориулагдаагүй тул өгөгдлийг декодлогчийн дотоод төлөвийг хадгалдаг буферийн гаднах хэсэгт бичсэн.
Нөлөөлөлд өртсөн төслүүд:
- 1.0.3 хувилбар гарснаас хойш байсаар байгаа бөгөөд 1.0.10, 1.1.1, болон 1.2.1 шинэчлэлтүүдэд засагдсан Brotli лавлах номын сан нь libbrotlidec номын санг ашигладаг програмууд болон сангуудад нөлөөлдөг.
- Node.js JavaScript платформ нь 26.12.1, 24.22.1, болон 22.23.4 шинэчлэлтүүдэд засварлагдсан. Гуравдагч талын контентыг хүсэхэд fetch() аргыг ашигладаг бөгөөд энэ нь HTTP хариултыг "Content-Encoding: br" толгой хэсэгтэй автоматаар тайлдаг програмууд эмзэг байж болно. Эмзэг байдал нь гуравдагч талын контентыг задлахын тулд zlib.brotliDecompress*(), createBrotliDecompress(), болон brotli.decompress() аргуудыг шууд дуудах эсвэл Express 5 болон body-parser 2.x сангуудаар дамжуулан задлан шинжилсэн HTTP хүсэлтийг хүлээн авах үед илэрдэг.
- Python нь brotli болон brotlicffi (1.2.1 хувилбарт санал болгосон засвар) болон тэдгээрийг ашигладаг төслүүдийг багцалдаг бөгөөд үүнд гадаад вэб нөөцөд хандах үед "Content-Encoding: br" толгой гарчигтай хариултуудыг тайлдаг алдартай urllib3, aiohttp, httpx, болон Scrapy сангууд багтдаг.
- HTTP серверүүд, HTTP прокси, HTTP клиентүүд болон Brotli шахалтыг дэмждэг вэб хөтөчүүд ("Accept-Encoding: br"). Apache httpd нь mod_brotli-тэй хамт ирдэг (анхдагчаар идэвхгүй болгосон). Гуравдагч талын модуль болох ngx_brotli нь nginx-д зориулагдсан (хамаарал дахь brotli хувилбарыг хамгийн сүүлийн хувилбар руу шинэчилсэн). Chrome/Chromium болон Firefox дээр энэ асуудлыг өмнөх шинэчлэлтээр аль хэдийн зассан. Прокси дээр-сервер Envoy эмзэг байдлыг 1.40.0, 1.39.3, 1.38.6, 1.37.8, 1.36.12 хувилбаруудад зассан.
- Програмд BrotliDecoder, BrotliStream, болон HttpClient аргуудыг ашиглах үед .NET ажиллах хугацаа. Эмзэг байдлыг хараахан нөхөөгүй байна.
- brotli_uncompress() функцийг ашиглах үед PHP brotli өргөтгөл гарч ирэв. Засаж байна.
- Brotli Ruby багц нь Brotli.inflate аргыг ашиглан exploit-д өртөмтгий байсан. Эмзэг байдлыг хараахан нөхөөгүй байна.
- Шахсан Паркет файлуудыг импортлох үед DuckDB алдаа гарлаа. Засаж байна.
- ClickHouse DBMS. Засаж байна.
- YDB DBMS. Эмзэг байдлыг хараахан засаагүй байна.
- Шахсан Паркет файлуудыг импортлох үед Apache сум харагдана. Засаж байна.
- libjxl (JPEG XL мета өгөгдлийг шахахад Brotli ашигладаг).
Бэлтгэл ажилдаа залруулга хийж байна. - NanaZip, 7-Zip-zstd, болон p7zip архивлагчид .br файлуудыг задлах үед эмзэг байдаг. Эмзэг байдал хэвээр байна.
- MuPDF. Эмзэг байдлыг нөхөөсгүй байна.
- Brotli ашиглан шахагдсан EDK II болон UEFITool дээр суурилсан UEFI програм хангамж. EDK II болон UEFITool-д зориулсан засвар бэлтгэгдэж байна.
- Bun JavaScript framework. Эмзэг байдлыг 1.4.4 хувилбарт зассан.
- Istio, бичил үйлчилгээний удирдлагын платформ. Эмзэг байдлыг 1.29.9, 1.30.6, болон 1.31.2 хувилбаруудад зассан.
- curl болон libcurl дээр эмзэг байдал нь libbrotlidec-ийн эмзэг хувилбар хамаарлуудад байх үед илэрдэг.
- Вэб Нээлттэй Фонт (WOFF) фонтын форматын парсерууд, ашигладаг
Бротли. - Brotli4j, SumatraPDF, Ghostscript, CatBoost болон YTsaurus. Эмзэг байдлыг шинэчлэлтээр зассан.
Эх сурвалж: opennet.ru
