WordPress vydal 17. července 2026 mimořádnou bezpečnostní aktualizaci 7.0.2, která opravuje dvě závažné zranitelnosti v jádře systému. Ta nejkritičtější – přezdívaná wp2shell – umožňuje neautentizovanému útočníkovi spustit kód na jakémkoliv WordPress webu od verze 6.9 výše. A to bez nutnosti pluginu, bez přihlášení, bez jakékoliv interakce s administrátorem. Exploit je už veřejně dostupný na GitHubu.
Dvě zranitelnosti, jeden řetězec
wp2shell není jedna chyba, ale řetězec dvou na sobě nezávislých zranitelností, které dohromady umožňují převzít kontrolu nad webem. Každá má vlastní CVE identifikátor:
- CVE-2026-60137 – SQL injection v jádře WordPressu. Chyba žije v parametru
author__not_invWP_Query. Když se místo pole předá řetězec, bezpečnostní kontrola se přeskočí a hodnota putuje přímo do SQL dotazu. Tato chyba je přítomná od verze 6.8. - CVE-2026-63030 – “batch-route confusion” v REST API. Slovem confusion popisují výzkumníci situaci, kdy chyba v jednom z poddotazů batch endpointu
/wp-json/batch/v1rozhodí indexy dvou paralelních polí, takže se další požadavek zpracuje pod cizím handlerem. Tato chyba existuje až od verze 6.9.
Dohromady tvoří smrtící kombinaci: batch endpoint obejde autentizaci (a allow-list endpointů), předá útočníkův vstup do zranitelného SQL dotazu a ten umožní zápis souborů na server. Žádný plugin, žádná přihláška – funguje na holé instalaci WordPressu.
Adam Kues z Assetnote / Searchlight Cyber objevil batch-route chybu a nahlásil ji přes HackerOne program WordPressu. SQL injection nahlásil tým TF1T, dtro a haongo.
Koho se to týká – verze a dopad
Nejde o “všechny weby”, ale rozdělení verzí je klíčové pro pochopení reálného ohrožení:
- 6.8.0 až 6.8.5: pouze SQL injection (opraveno v 6.8.6)
- 6.9.0 až 6.9.4: plný RCE řetězec (opraveno v 6.9.5)
- 7.0.0 až 7.0.1: plný RCE řetězec (opraveno v 7.0.2)
- 7.1 beta1: plný RCE řetězec (opraveno v 7.1 beta2)
Verze starší než 6.8 nejsou zranitelné. WordPress 6.9 vyšel 2. prosince 2025, takže všechny weby vystavené RCE řetězci běží na verzi mladší osmi měsíců.
Searchlight Cyber odhaduje, že WordPress celkově používá přes 500 milionů webů. Přesný počet zranitelných instalací nebyl zveřejněn, ale vzhledem k tomu, že se chyba týká pouze verzí od 6.9, jde o nejnovější weby – ty, které mají správci nejčastěji nastavené automatické aktualizace.
CVSS skóre: proč dávat pozor na čísla
WordPress ohodnotil RCE řetězec jako Critical (kritický). CVE záznam ale ukazuje skóre 7.5 (High), a to s dopadem pouze na důvěrnost dat, nikoliv na integritu nebo dostupnost. To je zvláštní, protože spuštění kódu na serveru typicky ovlivňuje všechna tři kritéria.
SQL injection má naopak skóre přes 9.1 (Critical) – protože ohrožuje data přímo v databázi. Dojem, že “RCE je méně závažné než SQL injection”, je ale klamný. Trackujte obě CVE, ne etiketu na žádné z nich.
Cloudflare už blokuje útoky WAF pravidly
Cloudflare nasadil WAF pravidla na ochranu všech zákazníků už 17. července v 17:03 UTC, tedy ještě před veřejným oznámením. Pravidla jsou aktivní pro všechny tarify včetně free a blokují:
- SQL injection (CVE-2026-60137) – detekuje upravené hodnoty parametrů předtím, než dorazí do WordPressu
- Remote Code Execution (CVE-2026-63030) – cílí na požadavky pokoušející se o zneužití batch endpointu
Důležité upozornění: WAF pravidla snižují riziko, ale nenahrazují aktualizaci. Cloudflare výslovně uvádí, že weby bez persistentní objektové cache (Redis, Memcached) jsou plně zranitelné. Na defaultní instalaci WordPressu žádná taková cache není, takže ochrana stojí a padá s WAF a s tím, jak rychle patch dorazí na server.
Jak se bránit – praktické kroky
WordPress nasadil tzv. forced update (vynucenou aktualizaci) přes auto-update systém. Pokud máte zapnuté automatické aktualizace, měla by se 7.0.2 nainstalovat sama. Přesto doporučujeme ověřit:
- Zkontrolujte verzi WordPressu – v administraci na obrazovce Na úvod nebo v části Aktualizace. Hledejte verzi 7.0.2, 6.9.5 nebo 6.8.6.
- Pokud aktualizace neproběhla – spusťte ji ručně: Dashboard → Aktualizace → tlačítko Aktualizovat nyní.
- Ověřte, že máte zapnuté automatické aktualizace – jádra, nejen pluginů. Bez nich forced update nefunguje.
- Pokud nemůžete aktualizovat hned – dočasně zablokujte
/wp-json/batch/v1na WAF nebo webovém serveru. Cloudflare totiž varuje, že je nutné blokovat obě varianty (jak/wp-json/batch/v1, takrest_route=/batch/v1), protože pravidlo jen na jednu cestu útok nezastaví. - Sledujte logy – hledejte podezřelé požadavky na REST API batch endpoint. Rapid7 slibuje detekci v InsightVM a Nexpose od 20. července.
Exploit je veřejný, patch je veřejný, CVE jsou přiřazené – teď jde jen o to, jestli patch dorazí na weby dřív, než skenery a útočníci najdou nezaktualizované instalace. WordPress zatím nehlásí aktivní zneužívání v přírodě, ale vzhledem k masovému zneužívání předchozích WordPress zranitelností (např. kampaň WP-SHELLSTORM, která pomocí jedné chyby v cache pluginu napadla přes 17 000 webů) je jen otázka času, kdy se útoky rozjedou.
Zdroje
Potřebujete s WordPress webem pomoct? Kontakt najdete přes formulář na stránce Kontakt.