Broccoli2Shell: kritická chyba v Brotli a co mají firmy udělat

27. 10. 2026
Okno aplikace s červeným archivem, ze kterého se sypou datové bloky přes okraj, paměťový modul a varovná ikona.

Stav k 27. 10. 2026. Téma se vyvíjí, před rozhodnutím si proto ověřte aktuální informace u výrobců.

Broccoli2Shell, známá také jako Node2Shell, je bezpečnostní zranitelnost CVE-2026-111497 v dekodéru Brotli, tedy v knihovně od Googlu, která rozbaluje komprimovaná data. Google ji hodnotí 9,2 z 10 (CVSS 4.0). Brotli se používá v Node.js, v balíčcích pro Python, v rozšíření pro PHP i ve firewallech Palo Alto. Opravy knihovny Brotli a Node.js vyšly 21. 10. 2026 a hlavní rada je jednoduchá: aktualizovat.

Pokud vám web nebo aplikaci spravuje dodavatel, pošlete mu tento článek. Ověřit to může jen někdo, kdo má přístup k serveru.

Rychlý přehled

Údaj Stav
Název Broccoli2Shell, známá také jako Node2Shell (oficiální název nemá)
CVE CVE-2026-111497
Závažnost Google: 9,2 z 10 (CVSS 4.0); Node.js: High
Kde je chyba dekodér Brotli (rozbalování dat), verze 1.0.3 až 1.2.0
První opravy 21. 10. 2026 (Brotli, Node.js)
CVE zveřejněno 22. 10. 2026
Útoky k 27. 10. 2026 nejsou známé

Co je Broccoli2Shell a proč se o ní mluví

Jedna chyba, několik jmen

Oficiální název chyba nemá. Jméno Broccoli2Shell se rozšířilo z neoficiálního webu. GitHub a část bezpečnostních firem ji označují jako Node2Shell, některá média jako HTTP2Shell. Ve všech případech jde o stejnou chybu CVE-2026-111497. Našli ji výzkumníci z OpenAI Codex Security.

Jak vážná je: 9,2 z 10 a co znamená spuštění cizího kódu

Útočník nemusí být přihlášený. Stačí mu poslat po síti upravená data komprimovaná Brotli. Když je aplikace začne rozbalovat, dekodér může zapsat data mimo vyhrazenou paměť. Výsledkem může být pád aplikace, únik dat z paměti nebo v horším případě spuštění cizího kódu na serveru.

Google jako vydavatel CVE hodnotí chybu 9,2 z 10 podle CVSS 4.0, tedy jako kritickou. Ostatní výrobci ji vidí mírněji: Node.js ji označuje jako vysokou (High), Microsoft u .NET dává 8,1 (CVSS 3.1). Útok navíc vyžaduje splnění určitých podmínek. Neznamená to tedy, že je každý server s Brotli automaticky ohrožený.

Koho se chyba týká

Důležité je rozlišit dvě věci. Chyba je v rozbalování Brotli, ne v komprimaci. Ohrožené jsou tedy systémy, které data v Brotli přijímají a rozbalují.

Technologie Zranitelné verze Opravená verze
Knihovna Brotli (Google) 1.0.3 až 1.2.0 1.0.10, 1.1.1, 1.2.1
Node.js 22, 24, 26 starší než opravené 22.23.4, 24.22.1, 26.12.1
Node.js 25, 23, 20 a starší všechny (konec podpory) oprava nevyjde, nutný přechod na podporovanou verzi
Python balíček brotli 1.0.3 až 1.2.0 1.2.1
Python balíček brotlicffi starší než 1.2.1.0 1.2.1.0
PHP rozšíření brotli starší verze 0.21.1 (obsahuje Brotli 1.2.1)
.NET 8, 9, 10 starší než opravené 8.0.33, 9.0.22, 10.0.14
Palo Alto PAN-OS 11.2, 12.1, 12.2 jen se zapnutou inspekcí Brotli 12.2.4-h1, 12.1.7-h11, 11.2.10-h17, další hotfixy do 30. 10.
Debian 12 a 13 (balíček brotli) starší balíčky 1.0.9-2+deb12u1, 1.1.0-2+deb13u1
Ubuntu 22.04, 24.04, 26.04, 26.10 starší balíčky USN-8956-1; Ubuntu 20.04 zatím bez opravy

Zranitelnost v aplikacích na Node.js

Node.js rozbaluje Brotli přes vestavěný modul zlib, proto je zasažené. Na větvích 22, 24 a 26 stačí aktualizovat na opravenou verzi, a to i v Docker image, ze kterých aplikace běží. Node.js 20 a starší opravu nedostanou. Node.js žádné dočasné řešení nevydal, jedinou cestou je aktualizace.

Pozor na Node.js z linuxových distribucí. Na Ubuntu 22.04 a novějším používá systémovou knihovnu Brotli, takže ho opraví aktualizace balíčku brotli. Node.js 18 a 20 z repozitářů Debianu zůstávají zranitelné.

Python: balíčky brotli a brotlicffi

V Pythonu se chyba týká doinstalovaných balíčků brotli a brotlicffi. Aktualizujte je na verze 1.2.1, respektive 1.2.1.0, a nezapomeňte upravit i soubory se zamčenými verzemi závislostí.

PHP: běžný web je pravděpodobně v pořádku

Tady je dobrá zpráva pro většinu firemních webů. Běžný web na PHP (WordPress nebo jiný redakční systém) běžící na Apache či nginx používá Brotli jen ke zrychlení, tedy ke komprimaci odpovědí. Moduly mod_brotli i ngx_brotli podle dokumentace data jen komprimují a příchozí Brotli nerozbalují. Podle našeho posouzení je takový web přes webový server pravděpodobně nezasažený.

Jinak je to tam, kde PHP aplikace data v Brotli sama rozbaluje, například přes PHP rozšíření brotli nebo systémovou knihovnu Brotli. Tam je potřeba aktualizovat.

Broccoli2Shell nesouvisí s chybami v PHP z minulého týdne. Pokud jste ještě neaktualizovali PHP, přečtěte si článek PHP2Shell: kritické chyby v PHP.

Firewally Palo Alto (PAN-OS)

U firewallů Palo Alto jsou zasažené PAN-OS 11.2, 12.1 a 12.2, ale jen se zapnutou inspekcí Brotli a dešifrováním TLS. Od verze 11.2.4 je inspekce Brotli ve výchozím stavu vypnutá. Správcovské rozhraní, Panorama ani verze 11.1 a 10.2 zasažené nejsou.

.NET a linuxové servery

U .NET aplikací stačí aktualizovat runtime, .NET Framework zasažený není. Aplikace typu self-contained a NativeAOT je potřeba znovu sestavit. Na linuxových serverech pomůže aktualizace systémového balíčku brotli.

Co mají firmy udělat hned

  1. Zjistěte, co vám běží. Požádejte dodavatele nebo hosting o soupis: verze Node.js, systémová knihovna Brotli, Python balíčky, PHP rozšíření, .NET a firewall.
  2. Aktualizujte na opravené verze podle tabulky výše.
  3. Restartujte procesy a znovu sestavte kontejnery. Aktualizace se projeví až po restartu, Docker image je potřeba sestavit znovu.
  4. Upravte zamčené verze závislostí, aby se při dalším nasazení nevrátila stará verze.
  5. Naplánujte přechod ze starých verzí. Node.js 20 a starší opravu nedostanou.

U většiny serverů jde o rutinní záplatu. Pokud ale nemáte, kdo by ji udělal, využijte urgentní programátorskou pomoc.

Když aktualizace hned nejde: dočasná opatření

  • Node.js: dočasné řešení neexistuje, aktualizace je jediná cesta.
  • Palo Alto PAN-OS: do instalace hotfixu lze inspekci Brotli vypnout příkazem set system setting brotli-encoding disable.
  • .NET: ASP.NET Core ani HttpClient Brotli ve výchozím stavu nerozbalují. Ověřte, jestli ho vaše aplikace sama nezapíná.

Stav k 27. 10. 2026: co víme o útocích

Reálné útoky zatím známé nejsou. Americká agentura CISA chybu k 27. 10. 2026 nezařadila do katalogu aktivně zneužívaných zranitelností (KEV) a Palo Alto o zneužití neví. Opravy jsou ale venku, s aktualizací proto zbytečně neotálejte.

Proč se podobné chyby opakují

Minulý týden PHP2Shell, teď Broccoli2Shell. Kritické chyby v základních knihovnách se objevují pravidelně. Rozhoduje, jestli někdo ví, na čem vaše aplikace běží, a umí ji bezpečně aktualizovat.

My v 1. Web IT z Prahy a Brna vyvíjíme a dlouhodobě podporujeme webové aplikace a e-shopy. V rámci pravidelné podpory aplikace nebo správy serverů a infrastruktury s vámi projdeme verze a pomůžeme s aktualizací. Co má dobrá podpora obsahovat, popisujeme v článku o SLA podpory aplikace. Pokud aplikaci po původním dodavateli nikdo nespravuje, pomůže článek o převzetí aplikace po jiném dodavateli.

Stará se o váš web kamarád „ze známosti“? Spousta firemních webů a aplikací běží díky ochotnému kamarádovi, bývalému kolegovi nebo někomu, kdo to „umí s počítači“. Je to normální, jen se pak často stane, že se na server dlouho nesáhne. Pokud je to i váš případ, napište nám. Společně se podíváme, na čem web běží a jestli je všechno aktuální.

Nejčastější otázky

Co je Broccoli2Shell?

Broccoli2Shell, známá také jako Node2Shell, je chyba CVE-2026-111497 v dekodéru komprese Brotli od Googlu. Upravená data mohou při rozbalování zapsat mimo vyhrazenou paměť. Důsledkem může být pád aplikace, únik dat z paměti nebo dokonce spuštění cizího kódu. Google ji hodnotí 9,2 z 10 (CVSS 4.0).

Týká se Broccoli2Shell i mého webu?

Pokud web nebo aplikace běží na Node.js, Pythonu s balíčkem brotli, PHP s rozšířením brotli nebo je za firewallem Palo Alto s inspekcí Brotli, nejspíš ano. Běžný PHP web na Apache nebo nginx je podle našeho posouzení pravděpodobně v pořádku. Jistotu dá jen kontrola konkrétních verzí u dodavatele nebo hostingu.

Jak se před Broccoli2Shell chránit?

Aktualizovat na opravené verze, například Node.js 22.23.4, 24.22.1 nebo 26.12.1 a Python brotli 1.2.1. Potom restartovat procesy a znovu sestavit kontejnery. Node.js 20 a starší opravu nedostanou, je potřeba přejít na novější verzi.

Je Broccoli2Shell už zneužívaná?

K 27. 10. 2026 nejsou reálné útoky známé a chyba není v katalogu CISA KEV. Opravy jsou dostupné, proto s aktualizací neotálejte.

Nevíte jistě, co na vašem serveru běží, nebo aktualizace narazila na problém? Napište nám. Projdeme s vámi verze a postup aktualizace.

Další články