Přeskočit na obsah
Kritická eskalace oprávnění v ACF Extended: kdy hrozí převzetí WordPressu bez přihlášení a co s tím
Tereza Novotná
Tereza Novotná 19. January 2026 · 4 min čtení

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

Nastavení pole role ve field group v ACF Extended (Allow User Role)
Role ve field group lze omezit, ale v postižených verzích se omezení nepřenášelo na zpracování formuláře. — Forrás: Wordfence.com
Nastavení formuláře v ACF Extended s akcí Create user a mapováním polí
Problém nastával typicky u akcí Create user / Update user, pokud bylo do mapování zahrnuto i pole role. — Forrás: Wordfence.com

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)

  1. Zjisti, jestli používáš plugin Advanced Custom Fields: Extended (slug acf-extended).
  2. Ověř verzi pluginu: pokud je 0.9.2.1 nebo nižší, je to zasažené.
  3. Projdi konfiguraci ACF Extended formulářů: hledej akce Create user nebo Update user.
  4. Zkontroluj mapování polí u těchto akcí: pokud je namapované pole role (nebo ekvivalentní), je to riziková konfigurace.
  5. Aktualizuj plugin na 0.9.2.2 (nebo novější, pokud už existuje).
  6. 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)

  1. 10. 12. 2025 – nahlášení přes Wordfence Bug Bounty Program
  2. 11. 12. 2025 – potvrzení a validace včetně proof-of-conceptu
  3. 11. 12. 2025 – firewall pravidlo pro Wordfence Premium/Care/Response
  4. 11. 12. 2025 – předání detailů vendorovi přes Wordfence Vulnerability Management Portal
  5. 14. 12. 2025 – vydání opravené verze 0.9.2.2
  6. 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.

Připojte se ke komunitě HelloWP!

Povídejte si s námi o WordPressu, webovém vývoji a sdílejte zkušenosti s ostatními vývojáři.

- členové
- online
Připojit se

Používáme cookies ke zlepšení vašeho zážitku. Pokračováním souhlasíte s našimi Zásadami používání cookies.