Kritická chyba v Elementor Pro umožňuje nezabezpečený upload PHP souborů – CVE-2026-32475 (CVSS 9.0)

Autor: Správa WordPress

Populární WordPress pagebuilder Elementor Pro obsahuje kritickou bezpečnostní chybu, která útočníkovi umožňuje nahrát spustitelný PHP soubor na server zcela bez ověření. Zranitelnost s identifikátorem CVE-2026-32475 dosahuje skóre 9,0 z 10 na stupnici CVSS a ohrožuje weby používající formuláře s polem pro nahrání souboru. Plugin Elementor Pro používá více než 10 milionů aktivních instalací a jeho placená verze rozšiřuje základní funkcionalitu o pokročilé nástroje včetně právě formulářů.

Jak chyba funguje – nesoulad dvou smyček

Podstata zranitelnosti spočívá v tom, že kód pro ověření nahraného souboru a kód pro jeho přesun používají dvě oddělené smyčky, které se liší v tom, jak zacházejí s prázdnými položkami. Výzkumníci z Patchstack, kteří chybu analyzovali, popisují situaci jako klasický desynchronizační defekt – obě smyčky samy o sobě fungují korektně, ale problém vzniká v mezeře mezi nimi.

Funkce validation() kontroluje přípony nahraných souborů proti povolenému a zakázanému seznamu. Pokud narazí na prázdný záznam (UPLOAD_ERR_NO_FILE), ihned ukončí celou metodu příkazem return. Funkce process_field() naproti tomu prázdný záznam pouze přeskočí příkazem continue a pokračuje ve zpracování dalších položek.

  • validation(): prázdný záznam → return (konec celé kontroly)
  • process_field(): prázdný záznam → continue (přeskočí a pokračuje dál)

Tento rozdíl umožňuje útočníkovi poslat dva soubory najednou – první prázdný, druhý s PHP kódem. Ověřovací smyčka skončí u prvního a druhý soubor vůbec nezkontroluje. Zpracovávací smyčka však druhý soubor přesune do veřejného adresáře.

Kde PHP soubor končí

Nahraný soubor je uložen do adresáře wp-content/uploads/elementor/forms/, který je běžně přístupný z internetu. Název souboru je vytvořen pomocí PHP funkce uniqid(), která generuje 13 hexadecimálních znaků – 8 znaků reprezentuje unixové timestamp v sekundách a 5 znaků mikrosekundy.

Útočník může výsledný název souboru zjistit dvěma způsoby:

  • Časový brute-force: Prvních 8 hex znaků je přímo odvoditelných z HTTP hlavičky Date: serveru. Zbývá jen 5 znaků mikrosekund, což je prostor, který lze snadno prohledat.
  • Autoresponder e-mailem: Pokud formulář obsahuje automatickou odpověď (velmi časté u pracovních a podpůrných formulářů), Elementor Pro ve výchozí šabloně [all-fields] vykreslí přesnou URL nahraného souboru a zašle ji zpět na adresu odesílatele. Tím odpadá jakýkoliv brute-force.

Seznam zakázaných přípon je obsažen, ale nepoužije se

Plugin sice obsahuje seznam zakázaných přípon, který blokuje PHP a další spustitelné formáty:

  • PHP varianty: php, php3, php4, php5, php6, php7, phps, phtml, shtml, pht
  • Ostatní nebezpečné: asp, aspx, exe, com, jar, swf, html, htm, csh, bat, cmd

Tento seznam je však kvůli popsanému logickému problému v podstatě nepoužitelný. Validace se k druhému souboru vůbec nedostane. Patchstack ve své analýze uvádí, že “vzdálenost mezi fungující obranou a neověřeným RCE je jeden klíčový příkaz – return místo continue”.

Jak snadné je zneužití

K úspěšnému útoku stačí, aby cílová stránka obsahovala alespoň jeden publikovaný Elementor formulář s polem pro nahrání souboru. To je extrémně běžná konfigurace – formuláře pro pracovní pozice, nahrání fotografií, dokladů nebo příloh v podpoře.

Všechny potřebné údaje jsou viditelné ve veřejném HTML kódu stránky:
post_id – identifikátor stránky
form_id – interní Elementor ID widgetu formuláře
form_fields[{FIELD_ID}] – název pole pro upload

Zpracování probíhá přes AJAX akci elementor_pro_forms_send_form, která nevyžaduje cookies ani nonce – útok je tedy zcela neověřený.

Časová osa a oprava

Bezpečnostní výzkumník Tin Pham (známý jako TF1T) objevil a nahlásil chybu 16. července 2026 v rámci Patchstack Bug Bounty programu. Reakce vývojářů byla rychlá:

  • 16. července 2026: Nahlášení chyby a potvrzení ze strany Patchstack
  • 16. července 2026: Přidělení CVE ID (CVE-2026-32475) a kontaktování Elementor teamu
  • 17. července 2026: Vývojáři připravili opravu
  • 3. srpna 2026: Patchstack potvrdil, že oprava řeší problém
  • 19. srpna 2026: Vydání verze 4.2.2 s opravou

Elementor Pro verze 4.2.1 a nižší jsou zranitelné. Oprava sjednocuje chování obou smyček – prázdný záznam už nezpůsobí předčasné ukončení validace a zároveň je kontrola přípon provedena znovu přímo před přesunem souboru.

Co by měli provozovatelé webů udělat

  1. Aktualizovat Elementor Pro na verzi 4.2.2 nebo novější – to je jediná spolehlivá ochrana.
  2. Zkontrolovat adresář wp-content/uploads/elementor/forms/ – hledejte soubory s příponou .php, které tam nepatří.
  3. Prověřit servery na známky kompromitace – pokud byl soubor nahrán, útočník mohl získat plnou kontrolu nad serverem.
  4. Zvážit dočasné odstranění pole pro upload z veřejných formulářů, pokud není aktualizace možná ihned.

Elementor sice uvádí, že chyba ohrožuje pouze “weby, které používají Elementor Pro Form s polem pro nahrání souboru a povolenou možností vícenásobného nahrání (ta je ve výchozím stavu vypnutá)”, ale výzkumníci z Patchstack upozorňují, že přepínač “Required” je ve výchozím stavu vypnutý a útok funguje i bez něj.

Souvislost s dalšími bezpečnostními událostmi

Objevení CVE-2026-32475 přichází jen něco málo přes týden poté, co WordPress vydal verzi 7.0.4 opravující vysoce závažnou chybu CVE-2026-65640 (CVSS 8.8), která umožňuje vzdálené spuštění kódu přes nahrání obrázku s malwarem uživatelem s rolí Autor nebo vyšší. Patchstack v této souvislosti varuje: “Pokud provozujete multi-autorský web, členskou stránku nebo cokoliv s volně spravovanou registrací, je tato hrozba mnohem reálnější, než se zdá.”

Obě chyby ukazují, že nahrávání souborů zůstává jednou z nejkritičtějších útočných ploch ve WordPress ekosystému. Zatímco CVE-2026-65640 vyžaduje alespoň přihlášeného autora, CVE-2026-32475 je zneužitelná zcela bez autentizace, což ji činí ještě nebezpečnější.

Zdroje

Zdroj: BleepingComputer – Critical Elementor Pro bug exposes WordPress sites to RCE attacks (20. 8. 2026)

Zdroj: The Hacker News – Elementor Pro Flaw Could Let Unauthenticated Attackers Upload PHP and Execute Code (20. 8. 2026)

Zdroj: Patchstack – Critical Unauthenticated File Upload to RCE in Elementor Pro Plugin (19. 8. 2026)

Potřebujete s WordPress webem pomoct? Kontakt najdete přes formulář na stránce Kontakt.