En kritisk sÄrbarhet i Brotli-avkodaren pÄverkar Node.JS, Bun, webblÀsare, HTTP-klienter och andra projekt.

En sÄrbarhet (CVE-2026-111497, kodnamn Broccoli2Shell och HTTP2Shell) har identifierats i biblioteket som innehÄller referensimplementeringen av Brotli-datakomprimeringsavkodaren. Denna sÄrbarhet leder till ett buffertspill vid bearbetning av specialskapad komprimerad data. Enligt Google kan denna sÄrbarhet anvÀndas för fjÀrrkörning av kod vid attacker av projekt som anvÀnder den officiella Brotli-avkodarimplementeringen. Berörda projekt inkluderar Node.js, Bun, Envoy, Istio, webblÀsare, proxyservrar, HTTP-klienter, HTTP-servrar, arkiverare, proxyservrar, UEFI-firmware, JPEG XL-visare, innehÄllsavkodningsbibliotek för Python, Ruby, Java, PHP och .NET, och deras tillhörande beroenden.

Problemet upptÀcktes av OpenAI i februari i Är och blockerades i Brotlis kodbas genom att ogiltiga strömmar ignorerades under avkodning. Den 22 oktober publicerades patchversioner av Brotli 1.0.10, 1.1.1 och 1.2.1, som uttryckligen tillkÀnnagav korrigeringen och ÄtgÀrdade det underliggande problemet. Samma dag skapades en prototypattack som möjliggjorde fjÀrrkörning av kod i laboratorieförhÄllanden med icke-standardiserade builds (standardversioner kraschade). Imperva upptÀckte senare en attack mot standard Node.js 24.22.0-builds. Linux- miljö pÄ ARM64-systemet.

SÄrbarheten resulterar i en buffertskrivning utanför grÀnserna pÄ grund av felaktig felhantering under blockparsning i en komprimerad ström. Funktionen DecodeBlockTypeAndLength() returnerade endast sanna och falska vÀrden istÀllet för en felkod, vilket förhindrade anroparen frÄn att skilja mellan strömkorruption och ett tillstÄnd som krÀver att ytterligare data skickas till funktionen. Om en felaktig komprimerad datablocktyp angavs i strömmen tolkade avkodaren det inte som ett fel, utan som ett tillstÄnd dÀr data inte fanns tillgÀngliga som krÀver ytterligare lÀsning frÄn strömmen. Eftersom den allokerade bufferten inte var utformad för att hantera ytterligare data som lÀstes, skrevs data till ett omrÄde utanför bufferten som lagrade avkodarens interna tillstÄnd.

Berörda projekt:

  • Brotli-referensbiblioteket, ett problem som har funnits sedan version 1.0.3 och som Ă„tgĂ€rdades i uppdateringarna 1.0.10, 1.1.1 och 1.2.1, pĂ„verkar program och bibliotek som anvĂ€nder libbrotlidec-biblioteket.
  • JavaScript-plattformen Node.js uppdaterades i uppdateringarna 26.12.1, 24.22.1 och 22.23.4. Program som anvĂ€nder metoden fetch() för att begĂ€ra innehĂ„ll frĂ„n tredje part, vilket automatiskt avkodar HTTP-svar med rubriken "Content-Encoding: br", kan vara sĂ„rbara. SĂ„rbarheten manifesterar sig ocksĂ„ nĂ€r metoderna zlib.brotliDecompress*(), createBrotliDecompress() och brotli.decompress() anropas direkt för att dekomprimera innehĂ„ll frĂ„n tredje part, eller nĂ€r HTTP-förfrĂ„gningar tas emot som parsats via biblioteken Express 5 och body-parser 2.x.
  • Python-paketen brotli och brotlicffi (rĂ€ttelse föreslagen i version 1.2.1) och projekt som anvĂ€nder dem, inklusive de populĂ€ra biblioteken urllib3, aiohttp, httpx och Scrapy, som avkodar svar med rubriken "Content-Encoding: br" vid Ă„tkomst till externa webbresurser.
  • HTTP-servrar, HTTP-proxyservrar, HTTP-klienter och webblĂ€sare som stöder Brotli-komprimering ("Accept-Encoding: br"). Apache httpd levereras med mod_brotli (inaktiverat som standard). En tredjepartsmodul, ngx_brotli, Ă€r tillgĂ€nglig för nginx (brotli-versionen i beroenden har uppdaterats till den senaste versionen). I Chrome/Chromium och Firefox har problemet redan Ă„tgĂ€rdats i en tidigare uppdatering. I proxy-server Envoy-sĂ„rbarheten Ă€r Ă„tgĂ€rdad i versionerna 1.40.0, 1.39.3, 1.38.6, 1.37.8, 1.36.12.
  • .NET-körningstid nĂ€r metoderna BrotliDecoder, BrotliStream och HttpClient anvĂ€nds i en applikation. SĂ„rbarheten har Ă€nnu inte Ă„tgĂ€rdats.
  • PHP brotli-tillĂ€gget nĂ€r funktionen brotli_uncompress() anvĂ€nds. ÅtgĂ€rdning pĂ„gĂ„r.
  • Ruby-paketet Brotli var sĂ„rbart för attacker med Brotli.inflate-metoden. SĂ„rbarheten har Ă€nnu inte Ă„tgĂ€rdats.
  • DuckDB vid import av komprimerade Parquet-filer. ÅtgĂ€rdning pĂ„gĂ„r.
  • ClickHouse DBMS. ÅtgĂ€rdning pĂ„gĂ„r.
  • YDB DBMS. SĂ„rbarheten har Ă€nnu inte Ă„tgĂ€rdats.
  • Apache Arrow vid import av komprimerade Parquet-filer. ÅtgĂ€rdning pĂ„gĂ„r.
  • libjxl (anvĂ€nder Brotli för komprimering av JPEG XL-metadata).
    RÀttelse under förberedelse.
  • Arkiveringsprogrammen NanaZip, 7-Zip-zstd och p7zip Ă€r sĂ„rbara vid uppackning av .br-filer. SĂ„rbarheten kvarstĂ„r.
  • MuPDF. SĂ„rbarheten har inte Ă„tgĂ€rdats.
  • UEFI-firmware baserad pĂ„ EDK II och UEFITool, komprimerad med Brotli. En fix förbereds för EDK II och UEFITool.
  • JavaScript-ramverket Bun. SĂ„rbarheten Ă„tgĂ€rdades i version 1.4.4.
  • Istio, en plattform för hantering av mikrotjĂ€nster. SĂ„rbarheten Ă„tgĂ€rdades i versionerna 1.29.9, 1.30.6 och 1.31.2.
  • curl och libcurl, manifesterar sig sĂ„rbarheten nĂ€r en sĂ„rbar version av libbrotlidec finns i beroendena.
  • Parsers for the Web Open Font (WOFF) teckensnittsformat, som anvĂ€nder
    Brotli.
  • Brotli4j, SumatraPDF, Ghostscript, CatBoost och YTsaurus. SĂ„rbarheten Ă„tgĂ€rdades i en uppdatering.

KĂ€lla: opennet.ru

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster