Vulnerabilitate critică în ACF Extended: escaladare de privilegii fără autentificare (CVE-2025-14533)
Un advisory publicat de Wordfence atrage atenția asupra unei vulnerabilități critice de tip Privilege Escalation în pluginul Advanced Custom Fields: Extended (cunoscut ca ACF Extended, add-on pentru Advanced Custom Fields). Vorbim de un scenariu în care un atacator neautentificat își poate acorda rol de administrator, dacă pe site există un formular ACF Extended configurat într-un anumit fel.
Pluginul are peste 100.000 de instalări active, iar problema este urmărită ca CVE-2025-14533, cu scor CVSS 9.8 (Critical). Versiunile afectate sunt până la și inclusiv 0.9.2.1, iar remedierea a fost livrată în 0.9.2.2.
Ce este, concret, problema (pe înțelesul unui dev WordPress)?
În ACF Extended poți construi formulare front-end (prin Form Manager) care execută acțiuni precum Create user / Update user. În mod normal, te-ai aștepta ca un câmp „role” (rol) să fie limitat la un set de roluri permise, mai ales că pluginul oferă o setare de tip “Allow User Role” la nivel de câmp.
În versiunile vulnerabile, însă, restricția de la nivelul câmpului nu este aplicată corespunzător când formularul rulează acțiunea de creare utilizator. Astfel, dacă formularul mapează un câmp către role, un atacator poate trimite un payload care setează rolul la administrator și poate obține acces admin.
Detaliu important despre exploatare
Conform Wordfence, vulnerabilitatea devine critică în special pe site-urile care au un formular ACF Extended cu acțiune „Create user” sau „Update user” și în care câmpul role este mapat. Dacă nu ai astfel de formulare (sau nu mapezi rolul), suprafața de atac e mult mai mică.
De ce e o escaladare de privilegii atât de periculoasă în WordPress?
Un cont de administrator în WordPress înseamnă, practic, control complet: instalare de pluginuri/teme, upload de fișiere, modificări în conținut, configurări de integrare, inclusiv posibilitatea de a introduce backdoor-uri (de exemplu printr-un plugin aparent „legitim”). În multe cazuri, compromiterea se propagă rapid: redirect-uri către site-uri malițioase, SEO spam, injectare de cod sau exfiltrare de date.
Ce spune analiza tehnică: unde apare defectul?
Wordfence indică faptul că ACF Extended folosește o funcție insert_user() în clasa acfe_module_form_action_user pentru a construi argumentele și a apela wp_insert_user($args). Problema descrisă: în fluxul de „insert user”, rolurile nu sunt restricționate corespunzător, ceea ce permite injectarea rolului administrator în datele de înregistrare.
Cu alte cuvinte, form action-ul tratează câmpurile mapate ca input valid fără să aplice o whitelist strictă pentru roluri, chiar dacă UI-ul sugerează că există o limitare (prin setarea „Allow User Role”).
Un fragment relevant (din analiza publică)
// Fragment prezentat în analiza Wordfence: acțiunea de tip 'insert_user'
// ajunge să apeleze wp_insert_user($args)
case 'insert_user':{
if(!isset($args['user_pass'])){
$args['user_pass'] = '';
}
$user_id = wp_insert_user($args);
}Cine este afectat și ce versiuni trebuie verificate?
- Plugin afectat: Advanced Custom Fields: Extended (slug:
acf-extended) - Versiuni vulnerabile: <= 0.9.2.1
- Versiune cu fix: 0.9.2.2
- CVE: CVE-2025-14533 (CVSS 9.8)
Pași practici de remediere (checklist pentru un site WordPress)
- Actualizează ACF Extended la 0.9.2.2 (sau mai nou, dacă există) cât mai rapid.
- Inventariază formularele ACF Extended: caută acțiuni de tip „Create user” / „Update user”.
- Verifică maparea câmpurilor: dacă există câmp mapat către
role, tratează situația ca prioritate 0. - Restrânge expunerea formularelor: dacă e posibil, pune formularele de user management în spatele autentificării sau adaugă validări suplimentare.
- Aplică un WAF/Firewall: Wordfence a livrat o regulă de firewall (pentru clienții Premium/Care/Response mai devreme, iar pentru Free mai târziu). Chiar și cu patch, un WAF poate opri pattern-uri comune de atac.
- Audit rapid post-update: verifică lista de utilizatori pentru conturi admin necunoscute și logurile de autentificare/creare cont.
De reținut despre protecția Wordfence
Conform anunțului Wordfence, utilizatorii Wordfence Premium/Care/Response au primit o regulă de firewall pe 11 decembrie 2025, iar utilizatorii Wordfence Free au primit aceeași protecție pe 10 ianuarie 2026.
Timeline de divulgare (pe scurt)
- 10 decembrie 2025: vulnerabilitatea a fost raportată prin Bug Bounty Program.
- 11 decembrie 2025: raport validat + detalii trimise către vendor prin portalul Wordfence.
- 14 decembrie 2025: vendorul a publicat versiunea fixată 0.9.2.2.
- 10 ianuarie 2026: regula ajunge și în Wordfence Free.
Imagini: cum arată configurarea tipică (din analiza Wordfence)


Concluzie
Vulnerabilitatea din ACF Extended (CVE-2025-14533) e un exemplu clasic de „input de formular care ajunge în capabilități” fără o validare strictă. Chiar dacă nu toate site-urile sunt exploatabile (depinde de existența unui formular de creare/actualizare utilizator cu role mapat), scorul critic e justificat: în scenariul vulnerabil, atacul se face fără autentificare și duce direct la admin.
Acțiunea recomandată este simplă: update la 0.9.2.2 și o verificare rapidă a formularelor și a conturilor de administrator din site.
Referințe / Surse
- 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)
Elena Popescu
Redactor-șef al echipei române, dezvoltator web full-stack și mentor tehnic. .NET și C# sunt domeniile mele principale, dar nici JavaScript modern nu-mi este străin.
Toate articolele