ACF Extended -lisäosan kriittinen oikeuksienkorotus: mitä pitää tarkistaa ja miten riski rajataan
WordPress-projekteissa ACF (Advanced Custom Fields) ja sen lisäosat ovat arkipäivää, ja siksi kaikki käyttäjähallintaan liittyvät lomakeominaisuudet kannattaa katsoa erityisellä varovaisuudella. Wordfencen raportin mukaan Advanced Custom Fields: Extended (ACF Extended) -lisäosasta on löytynyt kriittinen oikeuksienkorotus (Privilege Escalation), joka koskee versiota 0.9.2.1 ja sitä vanhempia.
Haavoittuvuuden idea on ikävän suoraviivainen: jos sivustolla on rakennettu käyttäjän luontiin/päivitykseen liittyvä lomaketoiminto niin, että lomakekenttä mapataan käyttäjän rooliin, hyökkääjä voi manipuloida kentän arvon ja asettaa rooliksi esimerkiksi administrator.
Mikä on vaikutus ja ketä tämä oikeasti koskee?
Wordfencen mukaan lisäosalla on yli 100 000 aktiivista asennusta, mutta kriittisyydestä huolimatta hyväksikäyttö edellyttää tiettyä toteutusta: sivustolle pitää olla rakennettu ACF Extendedin lomake, jossa käytetään “Create user”– tai “Update user” -toimintoa ja jossa rooli (role) on mukana kenttänä ja kytkettynä käyttäjätietojen tallennukseen.
Tärkeä rajaus
Haavoittuvuus on Wordfencen kuvauksen mukaan kriittinen erityisesti silloin, kun lomakkeessa on kenttä, joka mapataan rooliin (role). Jos et käytä käyttäjän luontia/päivitystä ACF Extendedin lomakkeilla tai et mapppaa roolia kentästä, hyökkäyspinta on käytännössä pienempi.
Jos hyökkääjä saa ylläpitäjän oikeudet, seuraukset ovat samat kuin missä tahansa admin-tason kompromississa: lisäosien ja teemojen asennus (myös haitalliset zipit), asetusten muuttaminen, sisältöjen manipulointi ja esimerkiksi uudelleenohjaukset tai roskasisällön injektointi.
Mitä haavoittuvuudessa tapahtuu teknisesti?
ACF Extended on ACF:n päälle rakennettu lisäosa, joka tuo mm. lisää kenttiä ja form managerin (lomakehallinnan). Wordfencen teknisessä analyysissä ongelma liittyy käyttäjän luonnin/päivityksen polkuun, jossa lomakkeelta kerätyt arvot kootaan argumenteiksi ja välitetään lopulta WordPressin käyttäjänluontiin.
Raportin ydin on, että insert_user-polussa rooli ei ole riittävästi rajattu: vaikka kenttäryhmän puolella olisi ajatus “Allow User Role” -tyyppisestä rajoituksesta, lomakkeen kautta tulevaa arvoa ei haavoittuvissa versioissa pakoteta samaan rajoitukseen. Tällöin hyökkääjä voi lähettää rooliksi administrator.
// Idea: lomakkeelta kerätyt arvot kootaan $args-taulukkoon
// ja syötetään wp_insert_user():lle.
// Haavoittuvassa toteutuksessa roolin (role) rajaaminen puuttuu,
// jos role on mapattu lomakekentästä.
$user_id = wp_insert_user($args);
// Jos $args['role'] voidaan syöttää vapaasti, rooliksi voi päätyä esim. 'administrator'.Versiot, CVE ja korjaus
- CVE: CVE-2025-14533
- Vaikuttaa: Advanced Custom Fields: Extended <= 0.9.2.1
- Korjattu versiossa: 0.9.2.2
- Vakavuus: CVSS 9.8 (Critical)
Wordfencen mukaan toimittaja julkaisi korjauksen nopeasti, ja suositus on yksiselitteinen: päivitä ACF Extended vähintään versioon 0.9.2.2 mahdollisimman pian.
Nopea tarkistuslista kehittäjälle / ylläpitäjälle
- Päivitä lisäosa: varmista, että ACF Extended on 0.9.2.2 tai uudempi.
- Etsi riskilomakkeet: käy läpi ACF Extendedin lomakkeet, joissa on “Create user” tai “Update user” -toiminto.
- Tarkista roolin mappaus: varmista, ettei lomakekenttää ole mapattu suoraan käyttäjän rooliin (role) — tai että rooli on tiukasti rajattu turvalliseksi.
- Arvioi tarve: jos käyttäjänluonti ACF Extendedin kautta ei ole välttämätöntä, poista toiminto käytöstä tai korvaa se turvallisemmalla toteutuksella.
- Katso lokit: jos sivustolla on ollut julkinen rekisteröitymislomake, tarkista viimeaikaiset uudet käyttäjät ja erityisesti admin-roolit.
Wordfence-suojaus ja aikajana (olennaiset kohdat)
Wordfencen raportissa kuvataan myös suojausten jakelua: maksulliset Wordfence-tuotteet saivat palomuurisäännön jo 11.12.2025, ja Wordfence Free sai saman suojauksen myöhemmin 10.1.2026. Lisäksi tieto välitettiin toimittajalle Wordfencen Vulnerability Management Portal -kanavan kautta ja korjattu versio julkaistiin 14.12.2025.
Miksi tämä on hyvä muistutus ACF-pohjaisista lomakkeista
Kun rakennat lomakkeita, jotka kirjoittavat WordPressin käyttäjäobjektiin, pienikin validoinnin puute muuttuu helposti admin-tason kompromissiksi. Kenttäryhmän asetukset eivät aina takaa sitä, että runtime-polku (lomakkeen submit) noudattaa samoja rajoituksia.
Yhteenveto
ACF Extendedin (<= 0.9.2.1) haavoittuvuus mahdollistaa kirjautumattoman oikeuksienkorotuksen tilanteissa, joissa sivustolla on ACF Extendedin käyttäjänluonti-/päivityslomake ja rooli mapataan lomakekentästä. Päivitä versioon 0.9.2.2, tarkista lomakkeiden roolimappaukset ja käy läpi käyttäjälistaus mahdollisten poikkeamien varalta.


Viitteet / Lähteet
- 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)
Mikko Virtanen
Avoimen lähdekoodin ylläpitäjä ja Linux-ytimen kontribuuttori. Avoin lähdekoodi ja yhteisöllinen kehitys ovat intohimoni. Koodin tulee olla vapaata!
Kaikki julkaisut