Notebook v šeru se schématem souborů, kde jeden řádek leží mimo strukturu a svítí oranžově

Naše webové stránky obsahují odkazy na partnerské weby. Pokud se prokliknete z našich stránek na stránky partnera a tam si zakoupíte jeho služby, obdržíme za zprostředkování provizi (Zjistit více informací). Tato forma spolupráce nijak neovlivňuje objektivnost našich recenzí. Každým nákupem přes proklik z našich stránek podpoříte naši redakci, abychom i do budoucna mohli tvořit kvalitní a užitečný obsah. Ďekujeme.

Důležité upozornění Všechny naše články píšou skuteční lidé. Nejsou to umělé texty od stroje.

WordPress 7.1.2 opravuje kritickou chybu: aktualizujte hned, ale zjistěte, jestli se vás týká

WordPress 7.1.2 vyšel 22. září 2026 a opravuje jedinou, zato kritickou zranitelnost. Neautentizovaný útočník — tedy kdokoli, kdo se nemusí nijak přihlašovat — může za určitých podmínek dosáhnout spuštění vlastního kódu na serveru. Pokud máte zapnuté automatické aktualizace, pravděpodobně už máte hotovo. Pokud ne, udělejte to teď a zbytek si přečtěte potom.

Chyba dostala označení CVE-2026-87902 a hodnocení Critical, CVSS 9,2 z 10. Objevil a zodpovědně nahlásil ji Robert Ressl.

Zajímavější než samotné varování je ale to, co se v oficiálním hlášení píše dál: zranitelnost nefunguje všude. Musí být splněné dvě konkrétní podmínky a dá se poměrně přesně zjistit, jestli se vás týkají. Pojďme na to.

Co se přesně stalo

WordPress při zobrazení stránky vybírá šablonu funkcí get_page_template(). Ta se podívá, jestli má stránka přiřazenou vlastní šablonu, a příslušný soubor načte z adresáře aktivní šablony.

Chyba je v tom, že šlo tenhle výběr přimět, aby sáhl mimo adresář aktivní šablony a načetl libovolný čitelný PHP soubor jinde na serveru. To je učebnicový path traversal — v katalogu zranitelností nese označení CWE-98, tedy vkládání souborů v PHP.

Samo o sobě by načtení cizího PHP souboru nemuselo být katastrofa. Katastrofou se to stává ve chvíli, kdy na serveru existuje soubor, který po načtení udělá něco užitečného pro útočníka. A takové soubory na běžných serverech bohužel bývají.

Dvě podmínky, bez kterých to nefunguje

Tohle je ta část, kterou hostingové e-maily obvykle vynechávají. Podle oficiálního hlášení musí platit obojí najednou.

1. Šablona s adresářem začínajícím na page-

Aktivní šablona — nebo její rodičovská šablona — musí obsahovat složku v kořeni, jejíž název začíná na page-, typicky page-templates. To není žádná exotika, takhle je postavená spousta šablon.

Oficiální hlášení jmenovitě zmiňuje:

  • starší výchozí šablony Twenty Twelve a Twenty Fourteen,
  • z rozšířených šablon třetích stran Neve, Hestia a Sydney.

Neve a Hestia mají dohromady stovky tisíc instalací, takže „menšinový problém“ to rozhodně není.

2. Vhodný PHP soubor na serveru

Druhá podmínka je na straně serveru: musí tam existovat čitelný PHP soubor, jehož načtení vede ke spuštění kódu. Klasikou je pearcmd.php z balíčku PEAR — ten se dá zneužít, když má PHP zapnutou direktivu register_argc_argv.

A tady je ta nepříjemná část. Hlášení výslovně uvádí dvě velmi rozšířená prostředí, kde je tahle podmínka splněná ve výchozím stavu:

  • oficiální PHP image pro Docker,
  • výchozí konfigurace cPanelu, pokud běží na PHP starším než 8.5.

Jestli je váš web na běžném českém sdíleném hostingu s cPanelem a nemáte nejnovější PHP, je dost pravděpodobné, že druhou podmínku splňujete, aniž byste o tom věděli.

Jak zjistíte, jestli se to týká vás

Tři kontroly, každá zabere minutu. Berte je jako doplněk k aktualizaci, ne jako náhradu za ni.

  1. Podívejte se do adresáře své šablony. Přes FTP nebo správce souborů otevřete wp-content/themes/nazev-sablony/ a hledejte složku začínající na page-. Pokud používáte child šablonu, zkontrolujte i tu rodičovskou.
  2. Ověřte si register_argc_argv. Nejrychleji v administraci přes Nástroje → Zdraví webu → Info → Server, nebo si vytvořte dočasnou stránku s phpinfo() a hodnotu si najděte. Pokud je On, spadáte do rizikové skupiny.
  3. Zjistěte si verzi PHP. Stejné místo ve Zdraví webu. Na cPanelu s PHP nižším než 8.5 počítejte s tím, že podmínka platí.

Když neplatí ani jedna podmínka, bezprostřední riziko je výrazně nižší. To ale není důvod neaktualizovat — šablonu můžete změnit zítra a hosting může konfiguraci PHP upravit bez vašeho vědomí.

Proč jedno skóre říká 9,2 a druhé 8,1

Pokud si zranitelnost vyhledáte, narazíte na dvě různá čísla a může to působit zmateně. Obě jsou správně, jen pocházejí z různých verzí stejného standardu.

  • CVSS v4: 9,2 — Critical. Hodnocení bezpečnostního týmu WordPressu. Vektor je AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H.
  • CVSS v3.1: 8,1 — High. Hodnocení od CISA v databázi NVD. Vektor AV:N/AC:H/PR:N/UI:N/C:H/I:H/A:H.

Rozdíl je v tom, jak každá verze zachází s podmíněností útoku. Novější CVSS v4 má samostatnou metriku „Attack Requirements“ — tady je nastavená na AT:P, tedy „podmínky musí být splněné“, a složitost samotného útoku zůstává nízká (AC:L). Starší v3.1 takovou metriku nemá, takže podmíněnost musí schovat do složitosti útoku (AC:H), což celkové skóre stlačí dolů.

Prakticky: když jsou podmínky splněné, útok je snadný. Proto dává devítka smysl víc než osmička.

Které verze jsou opravené

Chyba se týká všech verzí WordPressu nižších než 7.1.2 — tedy i všech starších větví. WordPress proto záplatu zpětně vydal až po větev 4.7, což je vstřícnost, kterou běžně nedělá.

Opravené verze jednotlivých větví:

7.1.2   7.0.6   6.9.9   6.8.10  6.7.9   6.6.9   6.5.12  6.4.12
6.3.12  6.2.13  6.1.14  6.0.16  5.9.18  5.8.17  5.7.19  5.6.21
5.5.22  5.4.23  5.3.25  5.2.28  5.1.26  5.0.29  4.9.33  4.8.32
4.7.37

Pozor ale na formulaci z oficiálního oznámení: zpětné záplaty se vydávají „as they become ready“, tedy postupně. Pokud jste na staré větvi a záplata pro ni ještě není, je to další důvod, proč na staré větvi nezůstávat.

A hlavně — WordPress připomíná, že aktivně podporovaná je vždy jen nejnovější verze. Zpětná záplata je jednorázová laskavost, ne příslib, že se to příště zopakuje.

Co udělat teď

  1. Aktualizujte WordPress na 7.1.2, případně na nejvyšší bezpečnostní verzi vaší větve. V administraci Nástěnka → Aktualizace → Aktualizovat.
  2. Zkontrolujte, že se aktualizace opravdu provedla. Ve Zdraví webu nebo v patičce administrace uvidíte číslo verze. U webů s vypnutými automatickými aktualizacemi se to občas tiše nepovede.
  3. Zapněte automatické aktualizace jádra, pokud je nemáte. U bezpečnostních vydání je zpoždění o dva dny rozdíl mezi „nic se nestalo“ a „řešíme incident“.
  4. Zvažte upgrade PHP. Na cPanelu s PHP pod 8.5 odpadne druhá podmínka útoku a zároveň získáte rychlejší web.
  5. Máte víc webů? Projděte je všechny, včetně těch, na které jste rok nesáhli. Právě zapomenuté instalace bývají vstupní branou.

Když máte podezření, že už je pozdě

Pokud jste na zranitelné verzi seděli dlouho a splňujete obě podmínky, samotná aktualizace útočníka nevyžene — zavře jen dveře, kterými přišel. Na co se podívat:

  • Neznámé PHP soubory v wp-content/uploads/, kam PHP nepatří.
  • Nové administrátorské účty, které jste nezakládali.
  • Změněné soubory jádra. Nejrychleji je odhalíte přeinstalováním WordPressu přes Aktualizace → Přeinstalovat — přepíše jádro čistou kopií.
  • V přístupových logách požadavky na stránky s neobvyklými cestami obsahujícími page- a odkazy na pearcmd.
  • Naplánované úlohy v cronu, které tam nemají co dělat.

Podrobný postup pro případ, že web je už napadený, jsme psali u červencové zranitelnosti — kroky jsou stejné bez ohledu na to, kudy se útočník dostal dovnitř: WP2Shell: kritická chyba ve WordPressu umožňuje napadení bez přihlášení.

Shrnutí

WordPress 7.1.2 opravuje kritickou zranitelnost, která umožňuje neautentizovanému útočníkovi načíst cizí PHP soubor mimo adresář šablony a za příznivých okolností spustit vlastní kód. Zneužitelná je jen tehdy, když aktivní šablona obsahuje složku začínající na page- a zároveň je na serveru vhodný PHP soubor — což je u výchozího cPanelu se starším PHP a u oficiálního PHP Dockeru splněné.

Aktualizace je otázka jednoho kliknutí a vydání přišlo pouhých pět dní po verzi 7.1.1. Pokud jste aktualizovali minulý týden, udělejte to znovu.

Zdroje


Stav k 22. 9. 2026. Článek popisuje podmínky zranitelnosti tak, jak je zveřejnil bezpečnostní tým WordPressu, aby si čtenář mohl ověřit vlastní ohrožení; neobsahuje návod k útoku.


WooCommerce pluginy pro české a slovenské prostředí

Podobné příspěvky

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *