Kritická eskalace oprávnění v ACF Extended: kdy hrozí převzetí WordPressu bez přihlášení a co s tím
WordPress ekosystém znovu ukázal klasický bezpečnostní pattern: privilege escalation (eskalace oprávnění), tedy situace, kdy se někdo dostane k vyšším právům, než by měl. Tentokrát se to týká pluginu Advanced Custom Fields: Extended (ACF Extended), který rozšiřuje populární Advanced Custom Fields o další pole, správu formulářů a další funkce.
Podle zveřejněných informací od Wordfence se zranitelnost dotýkala verzí do 0.9.2.1 včetně, oprava je ve verzi 0.9.2.2. Problém má přidělené CVE-2025-14533 a hodnocení CVSS 9.8 (Critical).
Koho se to reálně týká (a proč to není „plošný“ bug každé instalace)
Důležitý detail: zranitelnost je kritická hlavně pro weby, které mají v ACF Extended nakonfigurovanou akci formuláře typu Create user nebo Update user a zároveň do mapování polí zahrnou i pole pro roli uživatele (typicky role). Wordfence přímo zmiňuje, že exploit je možný jen tehdy, když je role namapované na vlastní (custom) pole.
To znamená, že samotná přítomnost pluginu na webu ještě automaticky neznamená, že jde okamžitě zneužít. Pokud ale používáš ACF Extended jako „form builder“ pro registrace, onboarding nebo správu uživatelů přes frontend, je potřeba to brát vážně.
Co přesně bylo špatně: role šla podstrčit i přes omezení ve field group
ACF Extended umožňuje ve field group (skupině polí) definovat uživatelská pole, například e-mail, login, heslo a také roli. U role existuje nastavení typu „Allow User Role“, které má určovat, jaké role smí být použité.
Očekávání je jasné: když omezíš roli ve field group, stejné omezení se bude respektovat i při odeslání formuláře. V postižených verzích se ale při zpracování akce formuláře role nevalidovala/neořezávala podle těchto omezení. Útočník pak mohl při registraci poslat roli administrator a získat administrátorský účet – bez autentizace.
Kde to v kódu vznikalo
Wordfence popisuje, že zpracování probíhalo přes metodu insert_user() v třídě acfe_module_form_action_user, kde se sestaví $args a následně se volá wp_insert_user($args). Klíčové je, že se do $args propisovala i role, pokud přišla z formuláře, aniž by se vynutilo whitelistování rolí pro registraci.
// Sestavení argumentů pro uživatele a následné vytvoření
// Problém v postižených verzích: role z formuláře se mohla propsat bez dostatečného omezení.
$args = [];
...
$user_id = wp_insert_user($args);
Proč je to tak nebezpečné
Jakmile má útočník administrátora, může v praxi převzít celý web: instalovat pluginy/témata (třeba se zadními vrátky), upravovat obsah, přidávat přesměrování, vkládat spam nebo měnit nastavení.
Obrázky z analýzy: konfigurace, která k problému vede


Které verze jsou zasažené a jaká je oprava
- CVE: CVE-2025-14533
- Zasažené verze: Advanced Custom Fields: Extended <= 0.9.2.1
- Opravená verze: 0.9.2.2
- Závažnost: CVSS 9.8 (Critical)
Wordfence mitigace: kdy přišla ochrana ve firewallu
Wordfence nasadilo firewall pravidlo, které mělo blokovat pokusy o zneužití, 11. prosince 2025 pro placené varianty (Wordfence Premium, Care, Response). U bezplatné verze Wordfence se stejná ochrana dostala k uživatelům 10. ledna 2026 (po 30 dnech).
Co zkontrolovat na vlastních webech (praktický checklist)
- Zjisti, jestli používáš plugin Advanced Custom Fields: Extended (slug
acf-extended). - Ověř verzi pluginu: pokud je 0.9.2.1 nebo nižší, je to zasažené.
- Projdi konfiguraci ACF Extended formulářů: hledej akce Create user nebo Update user.
- Zkontroluj mapování polí u těchto akcí: pokud je namapované pole
role(nebo ekvivalentní), je to riziková konfigurace. - Aktualizuj plugin na 0.9.2.2 (nebo novější, pokud už existuje).
- Po aktualizaci zvaž revizi uživatelských účtů: zda v období před opravou nevznikl neočekávaný administrátor (např. neznámý e-mail/login).
Rychlé snížení rizika (když nemůžeš hned aktualizovat)
Pokud ACF Extended používáš pro registrace, dočasně z formuláře odstraň mapování role (pole role) nebo vypni akci Create/Update user, dokud neproběhne update. Není to náhrada opravy, ale umí to odstřihnout nejkritičtější cestu zneužití.
Časová osa zveřejnění a opravy (podle Wordfence)
- 10. 12. 2025 – nahlášení přes Wordfence Bug Bounty Program
- 11. 12. 2025 – potvrzení a validace včetně proof-of-conceptu
- 11. 12. 2025 – firewall pravidlo pro Wordfence Premium/Care/Response
- 11. 12. 2025 – předání detailů vendorovi přes Wordfence Vulnerability Management Portal
- 14. 12. 2025 – vydání opravené verze 0.9.2.2
- 10. 1. 2026 – firewall pravidlo i pro Wordfence Free
Shrnutí pro vývojáře a správce WordPressu
Tahle zranitelnost je dobrá připomínka, že jakmile necháš frontendový formulář sáhnout na uživatelské účty, musíš validovat všechno, co se týká oprávnění, dvojnásob. V ACF Extended šlo v určitých nastaveních podstrčit roli administrátora i tam, kde UI nabízelo restrikce.
Akční kroky jsou jednoduché: aktualizovat na 0.9.2.2, zkontrolovat, jestli někde nemáš formulář Create/Update user s mapovanou rolí, a projít uživatelské účty kvůli podezřelým adminům.
Reference / Zdroje
- 100,000 WordPress Sites Affected by Privilege Escalation Vulnerability in Advanced Custom Fields: Extended WordPress Plugin
- Advanced Custom Fields: Extended <= 0.9.2.1 — Unauthenticated Privilege Escalation via Insert User Form Action
- CVE-2025-14533
- Advanced Custom Fields: Extended (WordPress.org plugin page)
- Wordfence Bug Bounty Program
- Wordfence Vulnerability Management Portal
Tereza Novotná
Šéfredaktorka českého týmu, agile koučka a scrum master. Vedení týmů a optimalizace vývojových procesů je mou specializací.
Všechny příspěvky