Stručně: Zadní vrátka ve WordPressu najdete nejrychleji tak, že jádro a pluginy porovnáte přes WP-CLI s oficiálními kontrolními součty a poté cíleně projdete mu-plugins, uploady, wp-config.php, účty správců a databázi. Důležité po PHP2Shell: aktualizace WordPressu zranitelnost PHP neuzavře a existující zadní vrátka neodstraní.
Proč by se provozovatelé WordPressu měli dívat pozorněji právě teď
S PHP2Shell se v říjnu 2026 staly známými dvě kritické zranitelnosti v samotném PHP, CVE-2026-109618 a CVE-2026-109619. Umožňují spuštění škodlivého kódu bez přihlášení, bez ohledu na to, jak dobře je vaše instalace WordPressu udržována. Záplaty existují od 21. 10. 2026, podle zpráv médií byl ale první pokus o útok pozorován už 17. 10.
Kdo byl v tomto období zranitelný, měl by hledat stopy. WordPress je přitom typický cíl, protože mnoho instalací je postaveno podobně a útočníci znají úkryty. Co musí provozovatelé k PHP2Shell obecně udělat, najdete na stránce WordPress a PHP2Shell.
Následující kontroly provádějte pokud možno na kopii nebo po zálohování. Příkazy jen čtou a nic nemění.
Podle čeho zadní vrátka poznáte v běžném provozu
Zadní vrátka jsou navržena tak, aby zůstala nenápadná. Přesto existují příznaky, kterých si všimnete i bez technických znalostí. Patří k nim přesměrování na cizí stránky, která se objevují jen u návštěvníků z vyhledávače Google nebo jen na mobilních zařízeních. Podezřelé jsou také nové stránky s reklamou na léky, hazard nebo kopie značkového zboží, které se objevují ve vyhledávacím indexu, ale ne v administraci WordPressu.
Dalšími náznaky jsou varování od Googlu nebo prohlížeče, stížnosti zákazníků na spam z vaší domény, náhle výrazně vyšší spotřeba výpočetního času u poskytovatele hostingu nebo správci, které nikdo v týmu nezná. Žádný z těchto příznaků sám o sobě zadní vrátka nedokazuje. Pokud se jich objeví více najednou, neodkládejte následující kontroly.
A naopak: pokud nic z toho nevidíte, neznamená to, že je instalace čistá. Právě zadní vrátka, zřízená jen pro pozdější přístup, navenek často žádný účinek neukazují.
Jak najít zadní vrátka ve WordPressu: kontrola jádra a pluginů
WP-CLI umí porovnat soubory jádra WordPressu a pluginů z oficiálního adresáře se zveřejněnými kontrolními součty. Každá odchylka je konkrétní úkol ke kontrole.
cd /var/www/meine-seite
# Soubory jádra proti oficiálním kontrolním součtům
wp core verify-checksums
# Pluginy z oficiálního adresáře
wp plugin verify-checksums --all
# Nainstalované verze a stav
wp plugin list
wp theme list
Komerční pluginy a šablony takto zkontrolovat nelze. Pro ně pomůže jen porovnání s čerstvě staženým originálním balíčkem od výrobce. Neznámé pluginy, které nikdo z týmu neinstaloval, jsou vždy podezřelé, i když se zdají být deaktivované.
Typické úkryty v souborovém systému
Některá místa se u kompromitovaných instalací WordPressu opakují pořád dokola:
wp-content/mu-plugins/: načítá se automaticky a v běžném seznamu pluginů se neobjevuje.wp-content/uploads/: patří tam obrázky a dokumenty, žádné soubory PHP.wp-config.php: dodatečné řádkyincludeneborequirena začátku nebo na konci..htaccessa.user.inive webovém adresáři a podsložkách: neočekávaná přesměrování nebo automaticky předem načítané soubory.- Soubory v hlavním adresáři, jejichž názvy připomínají jádrové soubory WordPressu, ale nepatří k němu.
# Soubory PHP ve složce uploads
find wp-content/uploads -type f -name "*.php*"
# Obsah Must-Use pluginů
ls -la wp-content/mu-plugins/
# Všechny soubory .htaccess a .user.ini s datem změny
find . \( -name ".htaccess" -o -name ".user.ini" \) -exec ls -la {} +
# Nedávno změněné soubory PHP
find . -type f -name "*.php" -newermt "2026-10-17" -ls
Obecné vzory pro hledání zakódovaného kódu popisuje příručka Jak poznat a odstranit webshell.
Kontrola uživatelů, databáze a plánovaných úloh
Mnohá zadní vrátka vůbec nejsou v souborovém systému. Útočníkům často stačí k pozdějšímu návratu další účet správce.
# Všichni správci s datem registrace
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered
# Plánované úlohy ve WordPressu
wp cron event list
# Adresa webu (manipulace vedou k přesměrováním)
wp option get siteurl
wp option get home
# Příspěvky s vloženými skripty
wp db query "SELECT ID, post_title FROM $(wp db prefix)posts WHERE post_content LIKE '%<script%'"
Zkontrolujte také volby s neobvykle velkým obsahem a widgety s cizím kódem. Nálezy automaticky neznamenají útok, protože skripty používají i sledovací kódy nebo vložené mapy. Rozhodující je, zda obsah někdo z týmu zná.
Po nálezu změňte všechna hesla a bezpečnostní klíče v wp-config.php. Jinak zůstanou stávající přihlášení útočníků platná.
Jak zadní vrátka zavřít a zabránit návratu
Pokud jste zadní vrátka našli, je nová instalace většinou bezpečnější než opravování jednotlivých souborů. Osvědčilo se toto pořadí:
- Zajistit stopy: uložit logy, podezřelé soubory a export databáze s datem.
- Přivést PHP na opravený stav a restartovat všechny procesy PHP.
- Jádro WordPressu, pluginy a šablony nainstalovat znovu z originálních zdrojů.
- Uploady a databázi převzít po kontrole, smazat cizí účty, změnit všechny přístupy.
- Spouštění PHP ve složce uploads zakázat na úrovni serveru.
Pro Nginx k tomu stačí blok v konfiguraci serveru:
location ~* ^/wp-content/uploads/.*\.php$ {
deny all;
}
U Apache dosáhnete téhož pravidlem v konfiguraci serveru pro složku uploads. Soubor .htaccess přímo ve složce uploads je slabší, protože ho útočník s právy k zápisu může znovu změnit.
Po vyčištění počítejte s několika týdny přísnějšího sledování. Noví správci, nové soubory PHP a změny v wp-config.php by se měly v této době ihned projevit, například pravidelnou kontrolou přes WP-CLI nebo monitorováním souborů na serveru.
Jak potom nastavit práva k souborům, aby WordPress mohl zapisovat jen tam, kde je to nutné, ukazuje příručka Práva k souborům na webovém serveru.
Jak konkrétně pomáhá PHP SOS?
- Zajistíme stav instalace dřív, než se cokoli změní.
- Zkontrolujeme jádro, pluginy, šablony, databázi, účty a konfiguraci serveru na zadní vrátka.
- WordPress znovu nasadíme z čistých zdrojů a převezmeme jen ověřený obsah.
- Server i instalaci zabezpečíme a zdokumentujeme, co bylo nalezeno a odstraněno.
Průběh čištění popisuje služba Nechat odstranit malware a webshelly.
Časté dotazy
Uzavře aktualizace WordPressu zranitelnost PHP2Shell?
Ne. PHP2Shell je v interpretu PHP, nikoli ve WordPressu. Aktualizace WordPressu, šablon nebo pluginů na tom nic nemění; rozhodující je stav PHP na serveru a restart všech procesů PHP.
Najde bezpečnostní plugin všechna zadní vrátka?
Ne spolehlivě. Plugin běží uvnitř kompromitované instalace a sám může být zmanipulován. Doplňte ho kontrolami zvenčí, například kontrolními součty přes WP-CLI a porovnáním s čistými originálními soubory.
Co jsou mu-plugins a proč jsou podezřelé?
Must-Use pluginy ve složce wp-content/mu-plugins se načítají automaticky a v běžném seznamu pluginů se neobjevují. Útočníci toho rádi využívají, protože provozovatelé tuto složku zřídka kontrolují.
Mohou být zadní vrátka i v databázi?
Ano. Škodlivý kód nebo přesměrování se často ukládají do voleb, příspěvků nebo widgetů. Útočníci navíc často zřizují vlastní účty správců, které najdete v tabulce uživatelů.