Hlavní obsah

Unikla kritická chyba, která umožní útočníkům spustit cokoli. Co už víme

Foto: koláž: Pavel Kasík, Seznam Zprávy, AI vizualizace

Kritická zranitelnost v PHP serverech se týká velké části internetu, správci po celém světě musejí rychle záplatovat.

Internet se v posledních dvou dnech otřásl. Bezpečnostní díra nazvaná PHP2Shell se týká populárního jazyka PHP, na kterém běží velká část webových systémů. Administrátoři musejí záplatovat, a i uživatelé by se měli mít na pozoru.

Článek

Více než polovina webových stránek byla vystavena riziku okamžitého převzetí. Ty, které jejich správci neopraví, budou tomuto nebezpečí vystaveny nadále. Je to důsledek jedné z nejzávažnějších bezpečnostních děr v historii internetu. Závažná je především proto, že se týká velkého množství serverů – jazyk PHP totiž na pozadí využívá skoro 70 % všech webů.

Ve středu 21. října odpoledne vydala organizace PHP Foundation asi nejostřejší možné varování: v PHP je kritická chyba, která útočníkům umožní spustit svoje vlastní instrukce na vašem serveru. „Ohrožené jsou všechny instalace PHP, které obsluhují webové požadavky,“ píše se ve varování, které vyzývá k okamžitému instalování aktualizací.

Pokud jste správce webu, zřejmě už máte plné ruce práce. Pro ostatní přinášíme srozumitelný přehled toho, co se stalo, jaké to mělo dopady, na co si musejí dát pozor běžní uživatelé a co tato epizoda může znamenat pro bezpečnost internetu obecně.

Co je to PHP a proč by to někoho mělo v roce 2026 zajímat?

Jazyk PHP vznikl v roce 1995 jako nástroj pro psaní dynamických webových stránek. Zkratka znamená PHP Hypertext Preprocessor (ano, to je záměrný vtip) a v podstatě znamená, že než se vám webová stránka zobrazí v prohlížeči, tak ji napřed serverová aplikace (využívající právě PHP nebo jiný podobný nástroj) sestaví na míru vašemu požadavku.

To je dnes naprostá samozřejmost, v 90. letech to byla žhavá novinka. Přestože jazyk PHP je vývojáři považován někdy za živoucí zkamenělinu z internetového pravěku, pravdou zůstává, že je i třicet let od svého vzniku nesmírně oblíbený a využívá jej asi 69 % webů, včetně opravdu důležitých a navštěvovaných: například Wikipedia, Facebook nebo Slack. Na PHP ostatně běží i populární redakční systém WordPresss, který sám o sobě pohání více než třetinu webových stránek.

V čem objevená zranitelnost v PHP spočívá?

Zranitelnost je zjednodušeně řečeno chyba v počítačovém programu, která umožňuje útočníkovi dosáhnout něčeho, co by nemělo být možné. Chyba v programovacím jazyce je závažná tím, že se týká nejen konkrétního počítačového programu, ale všech počítačových programů, které jsou v daném jazyce postavené.

„Je to jako kdyby se ukázalo, že byla chyba v gramatice a všichni dělali chybu v tom, jak dávají dohromady věty,“ snaží se to přiblížit výzkumník Ryan Austin z bezpečnostní firmy Calif. „Akorát že místo toho, že jen vaše věta zní legračně, tak někdo může tuto chybu využít k tomu, aby odemkl dveře k vám domů.“

Organizace spravující jazyk PHP popsala dvě závažné chyby:

  • chyba CVE-2026-109618: útočník může pomocí upravených požadavků na nahrání souborů vyčerpat paměť a dostat se k věcem, které neměl vidět, a dokonce spustit vlastní kód a upravit tak například údaje v databázi.
  • chyba CVE-2026-109619: zneužívá stav, který na serveru přečká i po uvolnění paměti.

Pokud váš web používá na pozadí PHP, je velmi pravděpodobné, že je vystaven útokům, pokud neprovedete aktualizaci serveru.

Co chyba útočníkovi umožňuje?

Výzkumníci z firem Wiz a Calif, kteří se na popsání chyb podíleli, ukázali praktické dopady této zranitelnosti. Wiz předvedl převzetí kontroly nad servery provozované na oficiálních instalacích redakčních systémů Wordpress, Drupal nebo Joomla.

Ovládnutí v tomto případě znamená, že útočník může dělat prakticky vše: číst databázi, zapisovat do databáze, změnit údaje na stránkách, podstrčit návštěvníkům škodlivý kód atd. To vše bez znalosti jakéhokoli hesla. Jedná se tedy o tzv. zero-day – zranitelnost, kterou může útočník využít okamžitě (od prvního dne).

Snad jedinou dobrou zprávou pro provozovatele je, že technicky vzato je útok poměrně složitý na provedení. „Ze stovek údajných ukázek toho, jak zranitelnost funguje, je jenom malá část funkční,“ všímají si výzkumníci z firmy VulnCheck. „Předpokládáme ale, že útočníci budou tyto způsoby zkoušet masivně, bez ohledu na to, jak funkční budou.“

Jedinou skutečnou obranou pro správce tak zůstávají aktualizace.

Jak se svět o chybách dozvěděl?

Veřejné oznámení takto závažných chyb je vždy ožehavé a komplikované. Ideálně by se o objevené zranitelnosti měl dozvědět provozovatel dané služby, a teprve poté, co ji opraví, se existence chyby oznámí. V tomto případě ale uniklo oznámení na web dříve, než bylo plánované.

Chybu objevily – zřejmě nezávisle na sobě – týmy Calif, OpenAI a Wiz. Správci jazyka PHP pak pracovali přibližně dva měsíce na opravě. Dva dny před plánovaným koordinovaným zveřejněním ale informace o zranitelnostech (zřejmě bez technických podrobností) unikly na sociální sítě. Správce projektu PHP proto vydal před-oznámení o tom, že se chystá oficiální oznámení 21. října. Mezitím vyšly nové verze PHP 8.5.12, 8.4.27, 8.3.36 a 8.2.35, které již zranitelnost neobsahují.

Firma Calif omylem zveřejnila video s ukázkou zneužití s předstihem. Video následně smazala, ale kopie už kolovaly. Také firma Chainguard údajně embargo porušila. Společnost Amazon zase zjistila, že informace o zranitelnosti pravděpodobně někdo vypustil, nebo zneužil už předtím: 17. října zaznamenala útok využívající principů zranitelnosti PHP2Shell na svém nastraženém serveru (tzv. honeypot). Není tedy vyloučené, že k útokům mohlo docházet ještě dříve.

Doporučované