Advanced Custom Fields (ACF) structureert de inhoud van meer dan 2 miljoen WordPress-sites, en het CVE-register kent er 18 kwetsbaarheden aan toe die tussen januari 2020 en begin juli 2026 zijn gepubliceerd. Geen enkele is kritiek, maar een XSS uit 2023 werd al de dag na de publicatie aangevallen, en in oktober 2024 maakte de plugin iets unieks mee: de overname door WordPress.org in naam van de beveiliging. Hier vind je de tijdlijn, de kwetsbaarheden die ertoe doen en de juiste instellingen.
Advanced Custom Fields in het kort
ACF voegt aangepaste velden (tekst, afbeelding, relatie, repeater...) toe aan inhoud, gebruikers of optiepagina's. De plugin staat sinds maart 2011 op wordpress.org, was eigendom van Delicious Brains en werd in juni 2022 samen met vier andere plugins overgenomen door WP Engine. Er bestaan een gratis versie en een betaalde versie, ACF Pro. De officiële directory toont meer dan 2 miljoen actieve installaties (wordpress.org).
Bureaus en freelancers gebruiken de plugin als basis voor maatwerksites, met thema's die rond get_field() en the_field() zijn opgebouwd. ACF verwerkt dus gegevens die door alle rollen worden ingevoerd, en soms door anonieme bezoekers via de openbare formulieren (acf_form()). En de plugin is moeilijk te verwijderen: het thema hangt ervan af.
Tijdlijn van de kwetsbaarheden sinds 2020
We hebben de kwetsbaarheden in ACF (gratis en Pro) geteld die een CVE-identificatie kregen, op basis van de vermeldingen in het register cve.org, voor adviezen gepubliceerd van 1 januari 2020 tot 4 juli 2026: 18 kwetsbaarheden, allemaal gepatcht. Daarbij komt een kwetsbaarheid die WPScan in mei 2026 zonder CVE publiceerde. WPScan en Patchstack missen elk enkele kwetsbaarheden, met name die welke via het Japanse JPCERT zijn gemeld.

| Publicatie | Gepatcht in | Type | CVSS | CVE | Account vereist |
|---|---|---|---|---|---|
| 10 juni 2020 (patch) | 5.8.12 | XSS in de keuzelijsten | 6,1 (NVD) | CVE-2020-36172 | Geen (klik van een slachtoffer) |
| 2 december 2021 | 5.11 | Drie ontbrekende toegangscontroles | 6,5 tot 7,5 (NVD) | CVE-2021-20865, CVE-2021-20866, CVE-2021-20867 | Geen tot abonnee, afhankelijk van de kwetsbaarheid |
| 30 maart 2022 | 5.12.1 | Ongeautoriseerde toegang tot gegevens | 6,5 (NVD) | CVE-2022-23183 | Bijdrager |
| 25 juli 2022 | 5.12.3 (getroffen: van 5.0 tot 5.12.2) | Bestandsupload via een openbaar formulier | 8,8 (NVD) | CVE-2022-2594 | Geen |
| 18 oktober 2022 | 6.0.3 (getroffen: van 3.1.1 tot 6.0.2) | Blootstelling van veldwaarden | 3,7 (Patchstack), 7,5 (NVD) | CVE-2022-40696 | Geen volgens Patchstack |
| 10 april 2023 | 5.12.5 en 6.1.0 (getroffen: 5.x vóór 5.12.5, 6.x vóór 6.1.0) | PHP-objectinjectie | 8,8 (NVD) | CVE-2023-1196 | Bijdrager |
| 5 mei 2023 | 6.1.6 en 5.12.6 | Reflected XSS (gedocumenteerde aanvalspogingen) | 7,1 (Patchstack), 6,1 (NVD) | CVE-2023-30777 | Geen (klik van een ingelogde gebruiker) |
| 17 januari 2024 | 6.2.5 | Stored XSS via de shortcode | 6,4 (Wordfence), 5,4 (NVD) | CVE-2023-6701 | Bijdrager |
| 30 mei 2024 | 6.3.0 | Lezen van velden via de shortcode | 6,5 (NVD) | CVE-2024-4565 | Bijdrager |
| 9 oktober 2024 | 6.3.8, versterkt in 6.3.9 | Beperkte aanroep van functies | 5,4 (Patchstack), 6,6 (CISA) | CVE-2024-9529 | Beheerder |
| 15 oktober 2024 | 6.3.9 (getroffen: vóór 6.3.9, en Secure Custom Fields vóór 6.3.6.3) | Stored XSS in de editor van veldgroepen | 5,3 (CISA) | CVE-2024-49593 | Beheerder |
| 14 april 2026 | 6.7.1 | Lezen van privé-inhoud via AJAX | 5,3 (Wordfence) | CVE-2026-4812 | Geen (openbaar formulier) |
| 27 mei 2026 | 6.8.2 | Wijzigen van velden via een openbaar formulier | 5,3 (WPScan) | Geen | Geen |
| 30 mei 2026 | 6.8.2 | Wijzigen van de titel en inhoud van berichten | 5,3 (Wordfence) | CVE-2026-8382 | Geen (openbaar formulier) |
De data zijn die van het eerste openbare advies (voor 2020 die van de patch). De score is die van de organisatie die de CVE toekende, anders die van de NVD of CISA. De meeste kwetsbaarheden troffen ook ACF Pro, gepatcht in dezelfde versies. Vier kwetsbaarheden die niet in de tabel staan, vereisten een beheerdersaccount of toegang tot de instellingen van ACF: stored XSS of HTML-injecties in labels, gepatcht in 6.1.8 (2023), 6.3.6 en 6.3.9 (2024) en 6.4.3 (2025).
De opvallendste kwetsbaarheden uitgelegd
Juli 2022: bestanden geüpload zonder account (CVE-2022-2594)
James Golovich (Pritect) ontdekte dat sinds de herschrijving van versie 5.0 de "basis"-uploadvelden van de openbare formulieren van ACF niet door een beveiligingstoken (nonce) werden beschermd. Op een site met zo'n formulier kon een anonieme bezoeker bestanden plaatsen: geen PHP, dat door WordPress wordt geblokkeerd, maar wel elk toegestaan type, volgens de onderzoeker bruikbaar voor een latere aanval of voor phishing. Uitgever gecontacteerd op 11 juli 2022, versie 5.12.3 gepubliceerd op de 14e, openbaar advies op de 25e: een voorbeeldig tijdschema. De NVD beoordeelt de kwetsbaarheid met 8,8.
April 2023: PHP-objectinjectie door een bijdrager (CVE-2023-1196)
ACF deserialiseerde bepaalde gegevens die de gebruiker kon beïnvloeden. Een Bijdrager-account kon zo een PHP-object injecteren, wat pas gevaarlijk wordt als een andere plugin of het thema een "gadgetketen" levert. De kwetsbaarheid werd via WPScan gemeld door Nguyen Huu Do en door de NVD beoordeeld met 8,8. De versies 6.1.0 en 5.12.5, gepubliceerd op 3 en 4 april 2023, verbieden voortaan het deserialiseren van klassen. Het mechanisme wordt uitgelegd in ons artikel over PHP-objectinjectie.
Mei 2023: de reflected XSS die binnen 48 uur werd aangevallen (CVE-2023-30777)
Rafie Muhammad van Patchstack stelde vast dat de parameter post_status van het scherm met veldgroepen na alleen een sanitize_text_field aan de CSS-klassen van de beheerpagina werd toegevoegd, wat onvoldoende is omdat WordPress die klassen zonder escaping toont. Een aanvaller zonder account kon een link maken die, geopend door een ingelogde beheerder, JavaScript in diens browser uitvoerde. Patchstack beoordeelt de kwetsbaarheid met 7,1, de NVD met 6,1. Dit type aanval wordt uitgelegd in ons artikel over XSS-kwetsbaarheden in WordPress.
De kwetsbaarheid werd op 2 mei 2023 gemeld en op 4 mei gepatcht in 6.1.6, met een gebackporte patch in 5.12.6, en Patchstack publiceerde op 5 mei zijn analyse met een voorbeeldverzoek. Akamai zag vanaf 6 mei veel scan- en aanvalsactiviteit die woord voor woord het voorbeeld van Patchstack overnam, op sites uit alle sectoren. Akamai zegt niet of er sites zijn gecompromitteerd, en Patchstack meldde op 16 mei geen concrete pogingen bij zijn klanten te hebben gezien.
2024: de shortcode van ACF en het escapen van uitvoer
De shortcode [acf] was van 2022 tot 2024 het zwakke punt. In januari 2024 toonden Francesco Carlucci en Wordfence aan dat een bijdrager zonder het recht unfiltered_html kwaadaardige HTML in metadata kon opslaan en via deze shortcode kon tonen (CVE-2023-6701, gemeld op 12 december 2023, gepatcht in 6.2.5 op 16 januari 2024). In mei liet CVE-2024-4565 zien dat dezelfde shortcode de velden van elk bericht toonde zonder de rechten te controleren. De uitgever ging verder dan de patch: de shortcode is sinds 6.3.0 standaard uitgeschakeld op nieuwe installaties, en voor 6.2.7 werd aangekondigd dat the_field() gevaarlijke HTML verwijdert.
2026: de openbare formulieren in het vizier
De drie kwetsbaarheden van 2026 hebben iets gemeen: ze zijn gericht op de openbare formulieren van ACF en vereisen geen account. Met CVE-2026-4812, gemeld door Fernando Mecozzi en op 14 april door Wordfence gepubliceerd, kon je via de AJAX-verzoeken van de velden Relatie of Object informatie over concepten en privé-inhoud verkrijgen, met omzeiling van de ingestelde beperkingen. De patch, in 6.7.1, was al op 3 maart verschenen. Eind mei publiceerde Sarawut Poolkhet twee kwetsbaarheden die in 6.8.2 (26 mei) zijn gepatcht: met de ene kon je elk veld van het aan het formulier gekoppelde bericht wijzigen, zelfs een niet-getoond veld, met de andere de titel en inhoud ervan overschrijven (CVE-2026-8382). Ze zijn allemaal beoordeeld met 5,3, maar raken zonder authenticatie de vertrouwelijkheid of de integriteit van de inhoud.
Oktober 2024: ACF overgenomen door WordPress.org
Deze episode vermengt beveiliging en een juridisch conflict. Op 25 september 2024 kondigt Matt Mullenweg op WordPress.org aan dat WP Engine, met wie hij in een geschil verwikkeld is, niet langer gratis toegang heeft tot de middelen van de site. Het ACF-team kan niet meer in de directory publiceren en zet een eigen updatekanaal op.
Op 7 oktober publiceert ACF versie 6.3.8, die een kwetsbaarheid dicht die het beveiligingsteam van Automattic had gemeld (CVE-2024-9529): een beheerder kon PHP-functies laten uitvoeren via de callbackfuncties van met ACF aangemaakte inhoudstypen en taxonomieën, met name door het importeren van instellingen. De uitgever beschrijft dit als een "onwaarschijnlijk" scenario tussen twee beheerders; Patchstack geeft het een lage prioriteit, "weinig kans op misbruik". ACF zegt een kopie van de patch aan het beveiligingsteam van WordPress.org te hebben bezorgd, dat die als 6.3.6.1 publiceerde.
Op 12 oktober kondigt WordPress.org namens zijn beveiligingsteam aan dat het punt 18 van de directoryregels inroept om een fork van ACF te maken met de naam Secure Custom Fields (SCF), volgens WordPress.org om een beveiligingsprobleem op te lossen en de commerciële prikkels te verwijderen. Sites die automatische updates van WordPress.org ontvangen, worden naar SCF overgezet. De tekst spreekt van een "zeldzame en ongebruikelijke" situatie die door de rechtszaken van WP Engine is ontstaan. Het ACF-team antwoordt dezelfde dag dat nog nooit een actief ontwikkelde plugin zonder toestemming van de maker is afgenomen, noemt deze code "niet goedgekeurd" en vraagt zijn gebruikers versie 6.3.8 van zijn eigen site te downloaden.
Drie dagen later werd dezelfde stored XSS, voorbehouden aan beheerders, in beide branches gepatcht (CVE-2024-49593, ACF 6.3.9 en SCF 6.3.6.3): een fork erft ook de kwetsbaarheden van de oorspronkelijke code. Op 10 december 2024 beval een federale rechtbank in Californië voorlopig om WP Engine de toegang tot WordPress.org en de controle over de pluginpagina van ACF terug te geven; Automattic ziet daarin een maatregel om de status quo te behouden en zet de procedure voort. Half december kwam de pluginpagina terug bij WP Engine, terwijl SCF onder zijn eigen naam doorgaat, gepubliceerd door WordPress.org.
Voor een site-eigenaar is de les niet om een kamp te kiezen, maar om te weten waar je updates vandaan komen: in oktober 2024 kon een automatische update een plugin door een andere vervangen. Controleer of je ACF of SCF gebruikt, en of dat kanaal je de patches wel levert. Dit risico van het distributiekanaal wordt uitgewerkt in ons artikel over supply-chain-aanvallen.
Wat deze geschiedenis laat zien

- Geen kritieke kwetsbaarheid, maar wel kwetsbaarheden zonder account: acht van de negentien kwetsbaarheden vereisen geen account van de aanvaller, via een vervalste link of, vier keer, via een openbaar formulier.
- Toegangscontrole komt steeds terug: lezen van gegevens, velden of privé-inhoud in 2021, 2022, 2024 en 2026. Elke nieuwe manier om velden te tonen (shortcode, AJAX, formulier) moest achteraf worden afgeschermd.
- Tussenliggende rollen tellen mee: vier kwetsbaarheden vereisen alleen een Bijdrager-account. Beperk die accounts tot het strikt noodzakelijke (zie ons artikel over rollen en minimale rechten).
- De patches komen snel: drie dagen voor de bestandsupload in 2022, twee dagen voor de XSS van 2023. In april 2026 ging de patch zes weken aan het advies vooraf.
Om ACF in het geheel te plaatsen, raadpleeg je onze tijdlijn van de kwetsbaarheden in de WordPress-core en onze analyse van de kwetsbaarheden in plugins in cijfers.
Jezelf beschermen
- Werk bij: elke versie vanaf 6.8.2 dicht alle kwetsbaarheden uit de tabel.
- Schakel automatische updates in voor ACF (automatische updates van plugins).
- Controleer je openbare formulieren: als je
acf_form()gebruikt, beperk dan de getoonde velden met de optiefieldsen verwijder velden die niet meer worden gebruikt. Laat de shortcode uitgeschakeld als je thema hem niet gebruikt. - Verwijder overbodige plugins, ook een ACF of SCF die niet meer wordt gebruikt (verlaten plugins).
- Voeg een applicatiefirewall toe die virtuele patches kan toepassen om de uren na een advies te overbruggen (vergelijking van WAF's), en volg de kwetsbaarheden in je plugins (kwetsbaarheden in plugins bewaken).
WP Masquerade Pro kan je bij dat laatste punt helpen. Het vergelijkt elke dag de versies van je geïnstalleerde plugins en thema's met de openbare database WPVulnerability.net en stuurt je een kwetsbaarheidsmelding per e-mail met de ernst en de gepatchte versie. De klantenzone toont de openstaande updates en de kwetsbare sites (bewaking van je sites). WP Masquerade waarschuwt, het patcht geen plugins en is geen firewall: bijwerken blijft je doorslaggevende handeling. Om je uitrusting aan te vullen, raadpleeg je onze selectie van de beste WordPress-beveiligingsplugins.
Om te onthouden
- 18 kwetsbaarheden in ACF met een CVE van 1 januari 2020 tot 4 juli 2026, geen enkele kritiek, allemaal gepatcht.
- Op de XSS CVE-2023-30777 volgden minder dan 48 uur na de patch aanvalspogingen.
- Aanbevolen minimale versie: 6.8.2; installeer de nieuwste.
- De openbare formulieren (
acf_form()) en de shortcode zijn de gevoelige punten: beperk ze. - Controleer sinds oktober 2024 of je ACF of Secure Custom Fields gebruikt, en waar je updates vandaan komen.
Bronnen
- WordPress.org: plugin Advanced Custom Fields (ACF®) (externe link, opent in een nieuw tabblad)
- NVD: CVE-2022-2594 (22 augustus 2022) (externe link, opent in een nieuw tabblad)
- CVE.org: CVE-2023-30777 (10 mei 2023) (externe link, opent in een nieuw tabblad)
- WordPress.org: WP Engine is banned from WordPress.org (25 september 2024) (externe link, opent in een nieuw tabblad)
Andere geraadpleegde bronnen: andere CVE-registraties, officiële pagina's van de leveranciers, publicaties van beveiligingsonderzoekers, artikelen uit de vakpers, databases van WPScan en Patchstack.


