📌 Co se v článku dočtete
- Co se 21. října 2026 stalo a proč to řeší hostingy po celém světě.
- Jak za pět minut zjistíte, na jaké verzi PHP váš web běží a jestli je opravená.
- Co udělat, když je váš web na PHP 7 nebo 8.1, pro které oprava nevyšla.
- Jak poznat, že už vás někdo napadl, a co dělat potom.
- Kdy má smysl web aktualizovat a kdy je lepší postavit nový.
V úterý 21. října 2026 vydali vývojáři PHP opravy dvou vážných chyb. PHP je jazyk, ve kterém běží většina webů na světě: WordPress, PrestaShop, Drupal, Joomla, Magento, Laravel i moje vlastní weby. Chyby dostaly označení CVE-2026-109618 a CVE-2026-109619 a hodnocení 9,2 z 10, což je u bezpečnostních chyb skoro nejhorší možná známka. Od úterý mi volají klienti, co mají dělat, a odpověď je pokaždé stejná, jen se liší podle toho, na čem jejich web běží. Tady je celá, bez technického žargonu, ale s konkrétními kroky.
Co se vlastně stalo
Zjednodušeně: za určitých okolností může útočník poslat webu speciálně připravený požadavek a server ho zpracuje tak, že spustí cizí kód. Bez hesla, bez přihlášení do administrace, bez toho, aby někdo z firmy na cokoli klikl. Když se to povede, má útočník na serveru stejná práva jako samotný web: může číst databázi s údaji zákazníků, odesílat spam z vaší domény, přesměrovat návštěvníky na podvodné stránky, nebo tam nechat zadní vrátka a vrátit se, až se na to zapomene.
Důležité je, kde chyba je. Není ve WordPressu, není v šabloně ani v pluginu. Je v samotném PHP, tedy v programu, který na serveru všechny tyhle systémy spouští. Proto nepomůže aktualizovat WordPress ani pluginy. Pomůže jen aktualizace PHP na serveru, a tu dělá hosting nebo správce serveru, ne majitel webu.
Technicky jde o dvě chyby ve správě paměti. První (CVE-2026-109618) nastane, když serveru dojde paměť uprostřed zpracování požadavku a PHP při úklidu považuje neplatná data za platná. Druhá (CVE-2026-109619) spočívá v tom, že stav jednoho požadavku zůstane v paměti a další požadavek ve stejném procesu ho stihne použít dřív, než se vymaže. Obě vedou ke stejnému výsledku: spuštění cizího kódu. Nejvíc ohrožené jsou servery, kde PHP běží jako součást Apache (mod_php), zranitelný je ale i běžnější PHP-FPM.
Proč se o tom mluví tolik
Protože se to týká skoro každého. Odhady říkají, že PHP pohání kolem tří čtvrtin všech webů, u kterých jde jazyk zjistit. Každý e-shop na PrestaShopu, každý firemní web na WordPressu, každý portál na Drupalu. A protože chyba nevyžaduje přihlášení, dá se zkoušet hromadně: útočník si nechá projít seznam milionů domén a kde to projde, tam se usadí.
Cloudflare, přes který jde velká část světového provozu, hlásil první pokusy o zneužití už ve středu 22. října, tedy den po zveřejnění oprav. Bezpečnostní firma Huntress ve svých sledovaných sítích úspěšný útok zatím nezaznamenala. Na internetu koluje video s nástrojem PHP2Shell, který má ukazovat průnik do WordPressu, Drupalu, Magenta a dalších systémů, podle root.cz se ale veřejně dostupná verze neukázala jako funkční. Chyby zatím nejsou v americkém katalogu aktivně zneužívaných zranitelností. Jinými slovy: k 22. říjnu nikdo nepotvrdil úspěšný útok, ale pokusy běží a u chyb tohoto typu je otázka dnů, ne měsíců, kdy se funkční postup objeví. Na to, že „se zatím nic nestalo“, bych nespoléhal.
Které verze PHP jsou opravené a které ne
Opravy vyšly pro verze PHP 8.2, 8.3, 8.4 a 8.5, konkrétně 8.2.35, 8.3.36, 8.4.27 a 8.5.12. Pokud váš web běží na některé z těchto řad a hosting opravu nasadil, jste v pořádku.
A teď to podstatné: PHP 8.1 a všechny starší verze už oficiální opravy nedostávají. Jejich podpora skončila. Pro 7.4, 8.0 a 8.1 vydal bezpečnostní tým jen nouzovou záplatu zdrojového kódu, kterou si musí správce serveru sám zkompilovat a nasadit. Běžný hosting to pro tyhle staré verze většinou neudělá. Pro PHP 7.3 a starší a pro PHP 5 nevyšlo nic. Přitom podle evropského týmu CERT-EU jsou zasažené všechny verze od PHP 5 výš. Samotný tým PHP přesný rozsah neuvedl, takže berte jako jisté, že staré verze opravené nejsou.
Pro majitele webu to znamená jednu větu: když váš web běží na PHP 7.x, 8.0 nebo 8.1, je v tuhle chvíli děravý a nikdo ho za vás neopraví. Jediné řešení je přejít na PHP 8.2 nebo novější.
Jak zjistíte, na čem váš web běží
Zabere to pět minut a nepotřebujete programátora. Postup se liší podle toho, kde web máte.
Sdílený hosting (nejčastější případ)
Většina českých hostingů má v zákaznické administraci u každé domény položku „Verze PHP“. U Váš Hosting je v nastavení domény, u Wedosu v detailu webhostingu, u Active24 a Forpsi v nastavení služby. Když ji nenajdete, napište na podporu jednu větu: „Na jaké verzi PHP běží moje doména a je už nasazená oprava z 21. října?“ Slušný hosting odpoví do hodiny.
Sdílené hostingy, které znám, opravu nasadily hned v úterý. Váš Hosting na svém blogu napsal, že sdílený webhosting běží na opravené verzi a zákazníci nemusí nic dělat. Blueboard totéž. Pozor ale na jednu věc: to platí pro domény, které jsou přepnuté na PHP 8.2 a novější. Když máte u domény nastavené PHP 7.4, protože vám to tak před lety někdo nastavil, hosting za vás verzi nepřepne, aby vám web nerozbil. Děravé PHP 7.4 vám tam běží dál.
WordPress
V administraci jděte do Nástroje, Stav webu, záložka Informace, Server. Tam je verze PHP. WordPress navíc na úvodní stránce administrace léta zobrazuje upozornění „Váš web běží na zastaralé verzi PHP“ a většina majitelů ho léta zavírá. Tohle je chvíle, kdy to zavírat nejde.
Vlastní server (VPS)
Když máte vlastní server a nikdo se vám o něj nestará, je to na vás. Verzi zjistíte příkazem v terminálu, ale pozor, příkaz php -v ukazuje verzi pro příkazovou řádku, která se může lišit od té, na které běží web. Spolehlivější je soubor s voláním phpinfo(), který po kontrole hned smažete, protože vypisuje citlivé údaje o serveru. Servery se starým Debianem 10 a staršími verzemi opravu nedostanou vůbec, protože do nich už nové PHP nechodí. Takový server se musí přestěhovat na nový.
Co udělat podle toho, co jste zjistili
Web běží na PHP 8.2 nebo novějším na sdíleném hostingu
Nejspíš nemusíte dělat nic. Ověřte si u hostingu, že opravu nasadil, a je hotovo. Pro jistotu si stáhněte aktuální zálohu webu i databáze, pokud ji hosting nedělá automaticky, a uložte ji mimo server. Záloha je věc, která vás zachrání, kdyby se cokoli pokazilo, a stojí deset minut.
Web běží na PHP 8.2 nebo novějším na vlastním serveru
Aktualizujte PHP na opravenou verzi dnes, ne příští týden. Když to neumíte, zaplaťte si na to hodinu správce serveru. Kdyby aktualizace z nějakého důvodu nebyla hned možná, root.cz uvádí dočasná opatření: nastavit neomezený limit paměti pro PHP, snížit maximální velikost odesílaných dat, vypnout sledování průběhu nahrávání souborů a omezit procesy přes kontejner. Všechno jsou to náplasti pro správce, ne řešení. Cloudflare může nasadit blokovací pravidla, ale sám to říká: nenahrazuje aktualizaci.
Web běží na PHP 8.1 nebo starším
Tady je to vážné a je potřeba jednat. Postup:
- Zálohujte. Soubory i databázi, před jakýmkoli zásahem.
- Přepněte v administraci hostingu doménu na PHP 8.2 nebo 8.3. U většiny hostingů je to jedno kliknutí a projeví se do pár minut.
- Web proklikejte. Úvodní stránku, několik podstránek, kontaktní formulář (opravdu ho odešlete), u e-shopu vložení do košíku a objednávku až do konce, přihlášení do administrace.
Mohou nastat tři situace:
- Všechno funguje. Máte vyhráno. Nechte to tak a doaktualizujte šablonu a pluginy, které jste léta neřešili.
- Něco se rozbilo, ale web běží. U WordPressu je viníkem skoro vždy starý plugin nebo šablona, kterou autor přestal vyvíjet. Aktualizace nebo výměna za udržovaný plugin to většinou vyřeší. Je to práce na hodinu až dvě pro někoho, kdo WordPress zná.
- Bílá stránka nebo chybová hláška. Web je napsaný tak, že na novém PHP nepoběží. Buď ho někdo přepíše, nebo ho vyměníte. O tom je další kapitola.
Do doby, než web dostanete na opravenou verzi, doporučuje Váš Hosting omezit k němu přístup, třeba jen na vaše IP adresy nebo přes VPN. U veřejného firemního webu to moc nejde, ale u interních aplikací, intranetu nebo starého e-shopu, který už neprodává, ano.
Jak poznat, že už vás někdo napadl
Útoky na tuhle chybu teprve začínají, ale staré weby bývají děravé i jinde, takže kontrola neuškodí nikdy.
- Hosting vám napsal, že z vaší domény odchází spam, nebo vám pozastavil účet.
- V Googlu se u vašeho webu objevují stránky, které jste nikdy nevytvořili, často v cizím jazyce nebo s názvy léků a sázek.
- Web občas přesměruje návštěvníky jinam, hlavně z mobilu.
- V souborech webu jsou nové soubory s podivnými názvy nebo soubory, které se změnily v době, kdy nikdo nic neupravoval.
- V administraci přibyl uživatel, kterého nikdo nezaložil.
- Web je nápadně pomalejší, protože server místo vašich stránek počítá něco jiného.
Když cokoli z toho poznáváte, nezkoušejte to opravit ručně mazáním souborů. Ponechte si logy, web dočasně vypněte nebo omezte, obnovte ho ze zálohy z doby před podezřením a teprve potom aktualizujte PHP. Když obnovíte zálohu a nezalepíte díru, útočník se vrátí do večera. Při úniku osobních údajů zákazníků navíc máte povinnost to do 72 hodin ohlásit Úřadu pro ochranu osobních údajů.
Co ještě zkontrolovat, když už jste u toho
- Zálohy. Máte zálohu webu a databáze z poslední doby? Víte, jak ji obnovit a kolik to trvá? Vyzkoušeli jste to někdy? Když ne, zařiďte to dřív než cokoli jiného.
- Hesla. Do administrace, k hostingu, k doméně. Dlouhá, jedinečná, uložená ve správci hesel, ideálně s dvoufázovým ověřením. Heslo „firma2019“ je stejné jako žádné.
- Pluginy a šablona. Všechno, co jste rok neaktualizovali, aktualizujte. Co nepoužíváte, smažte, ne jen vypněte. Vypnutý plugin je pořád kód na serveru.
- Uživatelé. Odstraňte účty bývalých zaměstnanců a agentur, které už s webem nepracují.
- Doména. Je psaná na vás a máte k ní přístup? Když ji pro vás kdysi registroval dodavatel, který už neexistuje, řešte to hned, ne až při prodloužení.
- Certifikát. Zámek u adresy. Dnes zdarma, bez výmluv.
Kdy je lepší starý web vyměnit než opravovat
Z praxe: web, který neběží na PHP 8.2, bývá starý pět a víc let. Má starý kód, starou šablonu, pluginy, které už nikdo nevyvíjí, a často i další díry, o kterých se nepíše v novinách. Programátor, který ho zprovozní na novém PHP, vám naúčtuje hodiny práce, a za rok nebo dva řešíte totéž s další verzí. Mezitím web dál vypadá jako z roku 2018 a na mobilu se rozpadá.
Jednoduché pravidlo: když přepnutí na PHP 8.2 web rozbije a odhad na opravu je víc než pár hodin, nechte si zároveň nacenit web nový. Dost často vyjde levněji, a místo zalepené díry máte web, který vám přivádí zákazníky.
U mě to vypadá takhle. Nový web na míru stojí od 15 000 Kč a běží na aktuálním PHP. Má vlastní administraci bez cizích pluginů, o jejichž aktualizace byste se museli starat, a bezpečnostní kontrolu dělám před spuštěním i po něm. Obsah ze starého webu přenesu a staré adresy přesměruji na nové, takže v Googlu nepřijdete o pozice. Když nechcete platit nic najednou, je tu web na pronájem od 990 Kč měsíčně, kde je údržba serveru, aktualizace a zálohy v paušálu a podobné chyby řešíte tak, že si o nich přečtete, ne že vám spadne web. V obou případech neplatíte nic předem, web nejdřív uvidíte hotový na zkušební adrese. Podrobnosti najdete na stránce tvorba webových stránek na míru, konkrétní ceny v článku Kolik stojí webové stránky.
Co si z toho vzít do budoucna
Tahle chyba není první a nebude poslední. Podobné opravy vycházejí několikrát do roka, jen o nich většinou nepíšou noviny. Web je služba, ne věc: potřebuje někoho, kdo ho aktualizuje, zálohuje a jednou za čas zkontroluje. Buď to děláte vy, nebo to máte v ceně hostingu či pronájmu, nebo to nedělá nikdo. Ta třetí možnost je v Česku nejčastější a je to přesně ta, kterou útočníci hledají. Zjistěte si ještě dnes, do které skupiny patříte.
Často kladené otázky
Týká se chyba i WordPressu?
Ano. WordPress běží na PHP, takže záleží na verzi PHP na vašem hostingu, ne na verzi WordPressu. Aktualizace WordPressu ani pluginů tuhle chybu neopraví.
Můj hosting píše, že je vše opravené. Mám tomu věřit?
U sdílených hostingů ano, opravu nasazují centrálně. Zeptejte se ale výslovně, na jaké verzi PHP běží vaše doména. Když je to 8.1 nebo starší, opravená není, i když zbytek serveru ano.
Je nutné web vyměnit, když běží na PHP 7?
Nutné je dostat ho na PHP 8.2 nebo novější. Když to jde přepnutím a web dál funguje, vyměňovat ho nemusíte. Když se na novém PHP rozbije, je výměna většinou levnější než záplatování.
Stačí nasadit Cloudflare?
Cloudflare umí část útoků zachytit a jeho nasazení dává smysl i tak. Chybu ale neopraví. Je to zámek na dveřích, které mají díru ve zdi.
Jak poznám, že web někdo napadl?
Web odesílá spam, v Googlu se u něj objevují cizí stránky, přesměrovává jinam, hosting vám pozastavil účet. Při podezření web omezte, uchovejte logy, obnovte zálohu z doby před útokem a zalepte díru. Podrobně výš v kapitole o napadení.
Co když mi web dělal někdo, kdo už nepodniká?
Zjistěte u hostingu verzi PHP a zkuste přepnutí sami. Když se web rozbije, je to typický případ, kdy se vyplatí web vyměnit než hledat někoho, kdo se bude hrabat v cizím starém kódu.
Chcete to probrat?
Ať už chcete jen konzultaci, nebo máte zájem rovnou o nový web, napište mi a domluvíme se, co dává ve vaší situaci smysl.
Napište miDalší články


