Brotli декодериндеги маанилүү алсыздык Node.JS, Bun, браузерлер, HTTP кардарлары жана башка долбоорлорго таасирин тийгизет.

Brotli маалыматтарды кысуу декодеринин шилтеме реализациясын камтыган китепканада аялуу жер (CVE-2026-111497, Broccoli2Shell жана HTTP2Shell коддук аталыштары) аныкталган. Бул аялуу жер атайын жасалган кысылган маалыматтарды иштетүүдө буфердин ашып кетишине алып келет. Google компаниясынын маалыматы боюнча, бул аялуу жер Brotli расмий декодер реализациясын колдонгон долбоорлорго кол салууда кодду алыстан аткаруу үчүн колдонулушу мүмкүн. Жабыркаган долбоорлорго Node.js, Bun, Envoy, Istio, веб-браузерлер, прокси-серверлер, HTTP кардарлары, HTTP серверлери, архивчилер, прокси-серверлер, UEFI микропрограммасы, JPEG XL көрүүчүлөрү, Python, Ruby, Java, PHP жана .NET үчүн контентти декоддоочу китепканалар жана аларга байланыштуу көз карандылыктар кирет.

Маселе ушул жылдын февраль айында OpenAI тарабынан аныкталып, декоддоо учурунда жараксыз агымдарды жок кылуу менен Brotli код базасында бөгөттөлдү. 22-октябрда Brotli 1.0.10, 1.1.1 жана 1.2.1 патчтарынын чыгарылыштары жарыяланып, оңдоо ачык жарыяланып, негизги көйгөй чечилди. Ошол эле күнү стандарттуу эмес курулмаларды колдонуп (стандарттуу курулмалар иштебей калчу) лабораториялык шарттарда кодду алыстан аткарууга мүмкүндүк берген прототиптик эксплойт түзүлдү. Кийинчерээк Imperva стандарттуу Node.js 24.22.0 курулмаларына чабуулду аныктады. Linux- ARM64 системасындагы чөйрө.

Бул алсыздык кысылган агымда блокту талдоо учурунда каталарды туура эмес иштетүүдөн улам чектен чыккан буферди жазууга алып келет. DecodeBlockTypeAndLength() функциясы ката кодунун ордуна чыныгы жана жалган маанилерди гана кайтарып берген, бул чалуучуга агымдын бузулушун жана функцияга кошумча маалыматтарды берүүнү талап кылган шартты айырмалоого тоскоол болгон. Эгерде агымда туура эмес кысылган маалымат блогунун түрү көрсөтүлгөн болсо, декодер аны ката катары эмес, агымдан кошумча окууну талап кылган маалыматтан тышкаркы шарт катары чечмелеген. Бирок, бөлүнгөн буфер кошумча маалыматтарды окууга ылайыкташтырылбагандыктан, маалыматтар декодердин ички абалын сактаган буфердин сыртындагы аймакка жазылган.

Таасир эткен долбоорлор:

  • Brotli маалымдама китепканасы, 1.0.3 чыгарылышынан бери бар болгон жана 1.0.10, 1.1.1 жана 1.2.1 жаңыртууларында оңдолгон көйгөй, libbrotlidec китепканасын колдонгон тиркемелерге жана китепканаларга таасирин тийгизет.
  • Node.js JavaScript платформасы 26.12.1, 24.22.1 жана 22.23.4 жаңыртууларында патчталган. Үчүнчү тараптын мазмунун суроо үчүн fetch() ыкмасын колдонгон, "Content-Encoding: br" аталышы менен HTTP жоопторун автоматтык түрдө чечмелеген тиркемелер аялуу болушу мүмкүн. Бул аялуулук үчүнчү тараптын мазмунун ачуу үчүн 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 кысуусун колдогон веб-браузерлер ("Кабыл алуу-коддоо: br"). Apache httpd mod_brotli менен келет (демейки шартта өчүрүлгөн). nginx үчүн үчүнчү тараптын ngx_brotli модулу жеткиликтүү (көз карандылыктардагы 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 кеңейтүүсү. Оңдолууда.
  • Ruby пакети Brotli Brotli.inflate ыкмасын колдонуу менен эксплойтторго алсыз болгон. Алсыздык азырынча оңдоло элек.
  • Кысылган паркет файлдарын импорттоодо DuckDB катасы. Оңдолууда.
  • ClickHouse маалымат базасы. Оңдолууда.
  • YDB DBMS. Алсыздык азырынча оңдоло элек.
  • Кысылган паркет файлдарын импорттоодо Apache жебеси. Оңдолууда.
  • libjxl (JPEG XL метадайындарын кысуу үчүн Brotli колдонот).
    Даярдык көрүлүүдө оңдоо.
  • NanaZip, 7-Zip-zstd жана p7zip архивчилери .br файлдарын ачууда алсыз болушат. Алсыздык сакталып калууда.
  • MuPDF. Алсыздык оңдолгон жок.
  • Brotli менен кысылган EDK II жана UEFITool негизиндеги UEFI микропрограммасы. EDK II жана UEFITool үчүн оңдоо даярдалууда.
  • Bun JavaScript алкагы. Алсыздык 1.4.4 версиясында оңдолгон.
  • Istio, микросервистерди башкаруу платформасы. Бул кемчилик 1.29.9, 1.30.6 жана 1.31.2 версияларында оңдолгон.
  • curl жана libcurl программаларында, алсыздык көз карандылыктарда libbrotlidecтин алсыз версиясы болгондо көрүнөт.
  • Веб ачык шрифтинин (WOFF) шрифт форматы үчүн талдоочулар, ал төмөнкүлөрдү колдонот
    Бротли.
  • Brotli4j, SumatraPDF, Ghostscript, CatBoost жана YTsaurus. Жаңыртууда бул кемчилик оңдолду.

Source: opennet.ru

DDoS коргоосу, VPS VDS серверлери бар сайттар үчүн ишенимдүү хостинг сатып алыңыз 🔥 DDoS коргоосу, VPS VDS серверлери бар ишенимдүү веб-сайт хостингин сатып алыңыз | ProHoster