Čo sa stalo
Google 21. októbra 2026 opravil vážnu chybu v knižnici Brotli, ktorá rozbaľuje dáta skomprimované vo formáte Brotli. Tento formát používa veľká časť webu na zmenšenie stránok a prenášaných dát, preto je knižnica súčasťou množstva programov: Node.js, Bun, .NET, balíky pre Python, proxy Envoy a Istio, oficiálne balíky PHP pre Windows aj firewally Palo Alto Networks. Chyba má označenie CVE-2026-111497 a týka sa verzií knižnice 1.0.3 až 1.2.0.
Chybu našli výskumníci tímu Codex Security zo spoločnosti OpenAI. V odbornej komunite dostala prezývky Node2Shell, Broccoli2Shell a HTTP2Shell. Zaujímavosť: samotná oprava bola v zdrojovom kóde Brotli už vo februári, no nikto netušil, že rieši bezpečnostný problém. Nová verzia knižnice s opravou preto vyšla až 21. októbra.
Americká agentúra CISA zaradila chybu 27. októbra 2026 do katalógu aktívne zneužívaných zraniteľností a európska databáza agentúry ENISA ju od toho dňa tiež vedie ako zneužívanú. Bezpečnostná firma ELLIO zachytila na svojich senzoroch skutočné pokusy o útok s verejne dostupným exploitom pre Node.js. Podľa nej za nimi stojí útočník zameraný na hromadné zneužívanie. Z tej istej IP adresy prišli aj útoky na chyby PHP2Shell v PHP.
Prečo je to nebezpečné
Ide o zápis mimo vyhradenej pamäte (buffer overflow). Predstavte si formulár s kolónkou na desať písmen, do ktorej niekto napíše sto písmen a text pretečie do susedných kolónok. Dekodér Brotli pri rozbaľovaní špeciálne upravených dát zapíše za koniec vyhradeného miesta a poškodí pamäť programu. Výsledkom môže byť pád služby, únik citlivých údajov z pamäte alebo v horšom prípade spustenie kódu útočníka.
Útočník sa nemusí nikam prihlasovať a útočí cez sieť. Stačí, aby vaša aplikácia rozbalila dáta vo formáte Brotli, ktoré môže ovplyvniť niekto cudzí. Podľa OpenAI to funguje oboma smermi: server prijímajúci komprimované požiadavky môže napadnúť škodlivý klient a klienta, ktorý sťahuje dáta z cudzích serverov, môže napadnúť škodlivý server.
Spustenie kódu predviedli výskumníci firmy Imperva na Node.js 24.22.0 pre Linux na ARM64 a potrebovali na to niekoľko pokusov. Podľa Cisca je ukážkový exploit verejne dostupný a firma ELLIO potvrdila, že na zraniteľných zostaveniach funguje. Podľa firmy Sysdig sú doteraz preukázaným dopadom pády služieb vo veľkom a spustenie kódu len v úzkej konfigurácii. Microsoft pri .NET spustenie kódu medzi dôsledkami neuvádza.
Skóre CVSS vyjadruje závažnosť na stupnici od 0 do 10. NVD chybu hodnotí 9,8 podľa CVSS 3.1. Google, ktorý chybe pridelil označenie, jej dáva 9,2 podľa CVSS 4.0. Obe hodnoty znamenajú kritickú úroveň. Red Hat ju hodnotí 8,1 podľa CVSS 3.1 a Microsoft pre .NET tiež 8,1.
Katalóg CISA KEV je zoznam chýb, pri ktorých existujú dôkazy o zneužívaní v praxi. Americké federálne úrady musia túto chybu opraviť do 10. novembra 2026. EPSS odhaduje pravdepodobnosť zneužitia v najbližších 30 dňoch. Pri tejto chybe je to približne 88 %, čím patrí medzi 1 % najrizikovejších zraniteľností.
Koho sa to týka
Zasiahnutý je každý program s knižnicou Google Brotli 1.0.3 až 1.2.0, ktorý rozbaľuje dáta vo formáte Brotli z nedôveryhodného zdroja. Typicky ide o webové aplikácie a API, reverzné proxy a skripty, ktoré sťahujú dáta z internetu. Mnohé produkty majú vlastnú kópiu knižnice a každý výrobca ju musí opraviť zvlášť. Ide najmä o:
- Node.js 22.x, 24.x a 26.x pred opravou a nepodporované vetvy 20.x a staršie. Ohrozené sú najmä aplikácie, ktoré cez
fetch()sťahujú cudzie dáta, a aplikácie na Express 5 alebo body-parser 2. - Bun 1.4.3 a starší.
- .NET 8.0, 9.0 a 10.0 pred opravou a náhľady 11.0 pred RC3, len ak aplikácia rozbaľuje cudzie dáta vo formáte Brotli (v ASP.NET Core a HttpClient je to predvolene vypnuté).
- Envoy a Istio, len ak je v nich zapnuté rozbaľovanie Brotli.
- Balíky pre Python Brotli 1.2.0 a staršie a brotlicffi 1.2.0.x a staršie. Stačí, že sú nainštalované, requests či httpx potom Brotli rozbaľujú samy.
- Oficiálne balíky PHP 8.2 až 8.5 pre Windows z 21. októbra 2026, ak aplikácia nechá cURL rozbaľovať odpovede (predvolene to robí napríklad Guzzle).
- Firewally Palo Alto Networks s PAN-OS 11.2.4 a novším, len ak majú zapnutú kontrolu Brotli (predvolene je vypnutá) a dešifrovanie TLS.
Kópiu Brotli majú aj ďalšie programy, napríklad databáza ClickHouse, rozšírenie Brotli pre PHP, Ruby gem „brotli“ či nástroj cdxgen (samostatné binárky a obrazy 13.4.0, 12.8.8 a staršie). Cisco a Fortinet svoje produkty zatiaľ preverujú. Netýka sa to .NET Frameworku, PAN-OS 11.1 a 10.2 ani Panoramy.
Ako zistiť, či ste zasiahnutí
Najprv si spíšte, kde máte Node.js, Bun, .NET, Python alebo PHP, vrátane kontajnerov a systémov od dodávateľov. Tieto príkazy len vypíšu verzie a nič nemenia:
node -v
bun --version
dotnet --list-runtimes
python3 -m pip show Brotli brotlicffi
dpkg -l | grep -i brotli
rpm -qa | grep -i brotli
Výsledok porovnajte s opravenými verziami v sekcii o oprave. Pri kontajneroch spustite príkaz vo vnútri bežiaceho kontajnera, napríklad cez docker exec.
Pri PHP pre Windows vám php -v nepomôže, lebo opravený balík má rovnaké číslo verzie. Opravené zostavenie spoznáte podľa prípony -1 v názve súboru, napríklad php-8.5.12-1-nts-Win32-vs17-x64.zip, a podľa odtlačku SHA-256 zo stránky na stiahnutie PHP.
Na firewalle Palo Alto Networks s PAN-OS 11.2.4 a novším spustite v príkazovom riadku nasledujúci príkaz. Ak výstup ukazuje Enabled: yes, firewall je ohrozený. Vo webovom rozhraní (PAN-OS 12.1.2 a novší) skontrolujte voľbu Allow Brotli Encoding v časti Device > Setup > Content-ID.
show system setting brotli
Ako to opraviť
Opravené verzie podľa výrobcov:
- Google Brotli: 1.0.10, 1.1.1 alebo 1.2.1.
- Node.js: 22.23.4, 24.22.1, 26.12.1. Dočasné riešenie neexistuje, jedinou opravou je aktualizácia. Z vetvy 20.x prejdite na podporovanú.
- Bun: 1.4.4.
- .NET: 8.0.33, 9.0.22, 10.0.14 a 11.0 RC3.
- Envoy: 1.40.0, 1.39.3, 1.38.6, 1.37.8, 1.36.12. Istio: 1.31.2, 1.30.6, 1.29.9.
- Python: Brotli 1.2.1, brotlicffi 1.2.1.0.
- PHP pre Windows: 8.5.12-1, 8.4.27-1, 8.3.36-1, 8.2.35-1.
- cdxgen: 13.5.0, 12.8.9.
- Debian 13: brotli 1.1.0-2+deb13u1, Debian 12: 1.0.9-2+deb12u1. Amazon Linux 2023 vydal opravu 24. októbra 2026, Ubuntu ju ešte posudzuje.
- PAN-OS: vyšli verzie 12.2.4-h1, 12.1.7-h11, 11.2.7-h23, 11.2.10-h17, 11.2.13-h4 a 11.2.16-h1, ohlásené sú 12.1.4-h13, 12.1.10-h3 a 11.2.4-h23.
Postupujte v tomto poradí:
- Najprv služby dostupné z internetu, ktoré prijímajú komprimované požiadavky alebo sťahujú dáta z cudzích serverov.
- Po aktualizácii službu reštartujte, bežiaci proces drží starú knižnicu až do reštartu. Kontajnerové obrazy znova zostavte, samostatné .NET aplikácie (self-contained a NativeAOT) znova zostavte a publikujte.
- Potom systémové balíky a ostatný softvér.
Kde zatiaľ aktualizovať nemôžete, odmietajte požiadavky s hlavičkou Content-Encoding: br ešte pred rozbalením, vypnite automatické rozbaľovanie Brotli v HTTP klientoch a v Pythone odinštalujte balíky Brotli a brotlicffi. Samotné odstránenie br z hlavičky Accept-Encoding nestačí. V PHP nenastavujte CURLOPT_ENCODING, v Guzzle nastavte decode_content na false. Na PAN-OS vypnite kontrolu Brotli:
set system setting brotli-encoding disable
Čo ak už ste mohli byť napadnutí
Keďže útočníci chybu už zneužívajú, pri neopravených službách dostupných z internetu počítajte s tým, že mohli byť terčom. Pozrite sa na:
- opakované nečakané pády procesov Node.js, Bun alebo .NET a chyby pri rozbaľovaní dát v logoch,
- požiadavky s hlavičkou
Content-Encoding: brod neznámych klientov, - spojenia z holandskej IP adresy, ktorú firma ELLIO spája s útokmi na túto chybu aj na PHP2Shell (presnú adresu uvádza jej správa a článok The Hacker News),
- nové procesy (napríklad shell) spustené pod používateľom aplikácie, neznáme súbory, nové účty a nečakané odchádzajúce spojenia.
Ak nájdete niečo podozrivé, odpojte server od siete, ale nevypínajte ho, aby ostali stopy v pamäti. Zmeňte heslá a kľúče, ku ktorým mala aplikácia prístup, a prizvite odborníka na riešenie incidentov. Samotná aktualizácia už napadnutý server nevyčistí.
Zdroje
- Palo Alto Networks: CVE-2026-111497 Portfolio Status: Impact of Brotli Vulnerability (CVE-2026-111497) on Palo ↗
- Cisco: Vulnerabilities in node.js Affecting Cisco Products: October 2026 ↗
- The Hacker News: Brotli Decoder Flaw Behind Node.js RCE Also Affects Bun, Python and Other Widely Used Softwar ↗
- The Hacker News: PHP Issues Second Windows Security Update in Five Days to Fix Brotli Code Execution Flaw ↗
- The Hacker News: Adobe Commerce PolyShell Attacks Breach Hundreds of Stores as Brotli Exploit Traffic Emerges ↗
- oss-security - Re: Upcoming Node.js security release 2026/10/21 ↗
- oss-security - Re: Brotli CVE-2026-111497 ↗
- NVD CVE-2026-111497 ↗
- ENISA EUVD EUVD-2026-108169 ↗
- CISA Known Exploited Vulnerabilities ↗