Útočníci zkoušeli kritickou chybu ve WordPressu už v den, kdy vyšla oprava
WordPress vydal 22. září verzi 7.1.2 s opravou jediné chyby, kterou sám označuje za kritickou: web se dá bez přihlášení přimět, aby při hledání šablony načetl cizí soubor PHP. Firma Patchstack viděla první zablokovaný pokus o zneužití týž den v 11.49 UTC a druhý den měl provoz proti téhle chybě víc než desetinásobek objemu z prvního večera.

WordPress vydal 22. září verzi 7.1.2, a je to čistě bezpečnostní vydání s jedinou opravou. Chyba, kterou zavírá, dovolí útočníkovi bez účtu přimět web, aby při hledání šablony stránky načetl vybraný soubor PHP ležící mimo adresáře aktivního tématu. Když se k tomu sejdou další podmínky na serveru, může to skončit spuštěním cizího kódu.
Rozhoduje kus adresy
Vada je ve způsobu, jakým WordPress skládá jména souborů, ve kterých šablonu hledá. Jedno z nich vzniká z části webové adresy a ve zranitelných verzích u něj chybí kontrola na průchod adresářem přes ../, jak popsal Root.cz. Záznam na GitHubu jmenuje funkci get_page_template() a řadí chybu pod CWE-98, tedy vkládání souboru, o jehož jménu rozhoduje útočník.
Známka závažnosti podle CVSS 4.0 je 9,2 z 10 a v číselníku zranitelností má chyba označení CVE-2026-87902. Nahlásil ji Robert Ressl, vydání vedl John Blackbourn.
Bez tří podmínek se nestane nic
Načtení cizího souboru samo o sobě není spuštění kódu. Aby se jedno stalo druhým, musí podle záznamu na GitHubu platit několik věcí naráz:
- Aktivní téma, ať rodičovské, nebo potomek, má v prvním stupni adresář, jehož jméno začíná na
page-– třebapage-templates. Vedle starých šablon Twenty Twelve a Twenty Fourteen to platí i pro rozšířená témata Neve, Hestia a Sydney. - Na serveru existuje cílový soubor PHP, který smí účet webového serveru číst.
- PHP má zapnuté
register_argc_argv. Pak se dá použít starý trik se souborempearcmd.phpz nástroje PEAR. Záznam výslovně jmenuje oficiální obraz php pro Docker a výchozí nastavení cPanelu s PHP starším než 8.5.
Od sondy k zapsanému souboru za čtyři hodiny
Bezpečnostní firma Patchstack, která provozuje ochrannou vrstvu pro weby na WordPressu, zveřejnila přehled toho, co jí přišlo na firewall. První pokusy dorazily 22. září v 11.49 UTC, tedy v den vydání 7.1.2. Podle Davea Jonga, který rozbor psal, odpovídají tvary požadavků přesně tomu kódování, které oprava řeší – jejich autor tedy pracoval s rozdílem ve zdrojovém kódu, ne s vlastním nálezem.
Provoz má tři zřetelné stupně. V prvním míří vložení na obyčejný soubor jádra a odpověď útočníkovi jen prozradí, jestli je web zranitelný; nejčastěji jde o wp-links-opml.php a wp-includes/feed-rss2.php. Druhý stupeň zkouší, jestli je na serveru dosažitelný pearcmd.php, a to ve třech obvyklých umístěních. Ve třetím útočník nechá týž nástroj zapsat na disk soubor PHP s vlastním obsahem, obvykle do /tmp. To už je spuštění kódu a Patchstack první takový pokus zachytil 22. září v 15.34 UTC.
Druhý den šel objem nahoru. Patchstack píše o více než desetinásobku proti prvnímu večeru, o vrcholu kolem poledne UTC a o veřejně kolujících skenovacích nástrojích včetně pojmenované šablony pro Nuclei. Zápis souboru na disk přitom zkouší jen menší část adres, ze kterých chodí sondování.
Opravu dostalo dvacet pět řad
Vedle 7.1.2 dostalo opravu dalších dvacet čtyři řad a nejstarší z nich, 4.7.37, vyšla týž den jako 7.1.2. Aktivně podporovaná zůstává jen nejnovější verze a backport projekt sám označuje za službu nad rámec podpory. Weby na řadách 4.0 až 4.6 a na starších tak záplatu nemají vůbec.
Kolika webů se to celé týká, ukazuje statistika W3Techs: k 23. září jede WordPress na 40,2 % všech webů a na 58,8 % těch, u kterých je redakční systém známý. Řada 7 má mezi weby s WordPressem 62,6 %, řada 6 dalších 30,4 %, pětka 4,8 %, čtyřka 2,0 % a trojka 0,2 %. Ve skupinách čtyřky a trojky, tedy u dohromady 2,2 % webů s WordPressem, leží i ty weby, pro které oprava neexistuje.
Většina webů se opraví sama
Drobná vydání jádra, tedy údržbová a bezpečnostní, si weby podle dokumentace WordPressu instalují samy, pokud to správce výslovně nevypnul konstantou v wp-config.php. Projekt takové vypnutí nedoporučuje a tohle je přesně ten případ, kdy se to vyplácí.
Komu automatická aktualizace neběží, má podle Patchstacku dvě vodítka v záznamech serveru. V přístupovém logu se hledají požadavky se slovem pearcmd nebo s +config-show a +config-create; podezřelé jsou i řetězce prohlížeče cve-2026-87902-poc/1.0 a nuclei-cve-2026-87902/1.0. Když na běžnou adresu stránky odpověděl web se stavem 200 a s obsahem OPML nebo RSS, znamená to, že vložení proběhlo. Na samotném stroji pak stojí za prohlédnutí /tmp a /var/tmp: neočekávaný soubor PHP tam podle Patchstacku znamená úspěšný třetí stupeň, a takový server se má brát jako prolomený, ne jako oskenovaný.
Zdroje
- WordPress 7.1.2 Release – oznámení projektu, 22. 9. 2026
- GHSA-7hp8-65ch-5whp – bezpečnostní záznam s podmínkami zneužití a seznamem opravených řad
- CVE-2026-87902: Attackers Started Probing WordPress Sites Hours After the Patch – rozbor Patchstacku
- WordPress opravuje kritickou chybu, která může umožnit spuštění cizího kódu – Root.cz
- Usage statistics of WordPress – W3Techs, data k 23. 9. 2026