CVE-2026-120534: code injection in ACF Extended PRO per WordPress, come verificare e aggiornare

Vincenzo Katriel Giuva3 novembre 20266 min di lettura
CVE-2026-120534: code injection in ACF Extended PRO per WordPress, come verificare e aggiornare

CVE-2026-120534 è una vulnerabilità di tipo Limited Code Injection nel plugin WordPress Advanced Custom Fields: Extended PRO (ACF Extended PRO). Riguarda tutte le versioni fino alla 0.9.2.6 inclusa, ha punteggio CVSS 9.8 (critico) e può essere sfruttata senza autenticazione. Se il tuo sito usa questo plugin, verifica subito la versione, controlla le due condizioni che rendono l'attacco possibile e aggiorna appena l'advisory indica una versione corretta.

Cosa è successo: la vulnerabilità CVE-2026-120534 in ACF Extended PRO

Il problema sta nella funzione render_field del plugin. I parametri di configurazione del form non vengono validati a sufficienza prima di essere uniti alle impostazioni del campo e passati a call_user_func_array. In pratica un attaccante può influenzare quale funzione PHP di WordPress viene richiamata e con quali argomenti. Non è un'esecuzione di codice libera, da qui il termine "limited", ma la possibilità di chiamare funzioni arbitrarie di WordPress con parametri controllati è sufficiente a compromettere un sito.

L'attacco è possibile in due scenari distinti, descritti nell'advisory:

  • Metodo 1: l'amministratore ha attivato sul form l'impostazione shortcode_preview, che non è attiva per impostazione predefinita.
  • Metodo 2: il server non dispone delle funzioni OpenSSL in PHP. In questo caso acf_decrypt di ACF Pro ripiega su una decodifica base64 non verificata, e il dato cifrato che dovrebbe proteggere la configurazione diventa manipolabile.

Chi è colpito: versioni vulnerabili di ACF Extended PRO

Sono vulnerabili tutte le versioni di Advanced Custom Fields: Extended PRO fino alla 0.9.2.6 inclusa. Il plugin è la variante a pagamento di ACF Extended, usata su molti siti WordPress per form in front end e campi avanzati. Chi usa solo la versione gratuita o solo ACF Pro deve comunque verificare sull'advisory se e come è interessato, perché il meccanismo coinvolge anche la funzione acf_decrypt di ACF Pro.

Il rischio concreto è maggiore se almeno una delle due condizioni è vera: anteprima shortcode attiva su un form, oppure hosting con PHP senza estensione OpenSSL. La seconda condizione è più comune di quanto si pensi su hosting economici o configurazioni PHP minimali.

Quanto è grave: punteggio CVSS e sfruttamento attivo della CVE-2026-120534

Il punteggio è 9.8 su 10, gravità critica. Il vettore CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H dice tutto in poche lettere:

  • AV:N e AC:L: attacco via rete, bassa complessità.
  • PR:N e UI:N: nessun privilegio richiesto, nessuna interazione dell'utente.
  • C:H / I:H / A:H: impatto alto su riservatezza, integrità e disponibilità.

Al momento la vulnerabilità non risulta nel catalogo CISA KEV, quindi non ci sono conferme ufficiali di sfruttamento attivo. Questo non deve rassicurare: le vulnerabilità nei plugin WordPress diffusi vengono di norma scansionate in massa poco dopo la pubblicazione. Chi la sfrutta può richiamare funzioni di WordPress con argomenti scelti, e a seconda della funzione il risultato va dalla modifica di impostazioni alla presa di controllo del sito.

Come capire se sei esposto: verifica versione, esposizione e log di ACF Extended PRO

Versione del plugin

Da bacheca: Plugin, cerca "Advanced Custom Fields: Extended PRO" e leggi la versione. Da terminale con WP-CLI:

wp plugin list --status=active

Se la versione è 0.9.2.6 o inferiore, sei nel perimetro vulnerabile.

Le due condizioni di attacco

  1. Apri la configurazione di ogni form creato con ACF Extended e controlla se l'opzione shortcode_preview è attiva. Se non ricordi di averla attivata, probabilmente è spenta, ma verifica form per form.
  2. Controlla se PHP dispone di OpenSSL: php -m | grep -i openssl oppure php -r 'var_dump(function_exists("openssl_encrypt"));'. Se il risultato è vuoto o false, il metodo 2 è applicabile. Su hosting condiviso puoi usare una pagina con phpinfo() e poi cancellarla.

Esposizione

I form in front end sono per definizione raggiungibili da chiunque. Se il sito è pubblico, l'endpoint è esposto. Un sito in staging dietro autenticazione HTTP o VPN riduce il rischio ma non lo elimina.

Log e indicatori di compromissione

  • Nei log di accesso del web server cerca richieste POST anomale verso pagine che contengono form ACF Extended, soprattutto con parametri lunghi o codificati in base64.
  • Verifica utenti amministratori nuovi o modificati: wp user list --role=administrator.
  • Controlla file modificati di recente: find wp-content -type f -mtime -14 e confronta il core con wp core verify-checksums.
  • Esamina le opzioni sensibili (siteurl, home, admin_email, default_role) e i task pianificati con wp cron event list.

Come risolvere la vulnerabilità: patch, aggiornamento e rimedio

Il rimedio definitivo è l'aggiornamento del plugin a una versione successiva alla 0.9.2.6. La versione esatta che contiene la correzione va verificata sull'advisory Wordfence linkato in fondo e nel changelog ufficiale del plugin. Essendo un plugin a pagamento, l'aggiornamento richiede una licenza valida: se la licenza è scaduta, il sito non riceve l'aggiornamento e resta vulnerabile anche se la patch esiste.

Se la versione corretta non è ancora disponibile per il tuo sito, applica i workaround della sezione successiva e mantieni il monitoraggio finché non puoi aggiornare. Dopo l'aggiornamento, ripeti il controllo della versione e verifica che i form continuino a funzionare.

Cosa fare subito: mitigazioni e hardening su ACF Extended PRO

  1. Disattiva shortcode_preview su tutti i form. Chiude il metodo 1 senza impatto per gli utenti.
  2. Verifica OpenSSL in PHP. Se manca, chiedi all'hosting di abilitare l'estensione o cambia versione PHP. Questo chiude il metodo 2 e rafforza anche altre funzioni di ACF Pro.
  3. Se non puoi fare né l'uno né l'altro, valuta la disattivazione temporanea del plugin o dei form pubblici fino all'aggiornamento.
  4. Firewall applicativo (WAF): utile come livello aggiuntivo, non come sostituto della patch.
  5. Ruota le credenziali di amministrazione, FTP/SFTP e database se il sito è rimasto esposto a lungo con una delle due condizioni attive.
  6. Backup verificato prima di ogni intervento, così da poter tornare indietro.

Questi passaggi rientrano nei controlli ordinari che descrivo nell'articolo sul sito WordPress sicuro. Chi ha un contratto di manutenzione del sito dovrebbe ricevere questo tipo di intervento senza doverlo chiedere.

Se sospetti una compromissione: incident response e analisi forense del sito WordPress

Se trovi utenti sconosciuti, file modificati o richieste anomale nei log, non limitarti a "pulire" e aggiornare. Prima:

  • Non cancellare nulla e non reinstallare il sito sopra l'installazione compromessa: perderesti le prove e non sapresti cosa è stato fatto.
  • Preserva i log del web server, di PHP e dell'hosting, con una copia su un supporto separato.
  • Fai una copia forense dei file e del database, con hash, prima di ogni modifica. Serve per capire l'origine dell'accesso e per eventuali azioni legali o assicurative.
  • Valuta la notifica al Garante e agli interessati se il sito gestisce dati personali, come previsto dal GDPR in caso di violazione.
  • Solo dopo: bonifica, aggiornamento, rotazione completa delle credenziali e verifica che non restino backdoor.

Per interventi di questo tipo lo studio offre incident response con preventivo a prezzo fisso, indicativamente da 1.500 a 6.000 € a seconda della complessità, con maggiorazione del 50% per le urgenze.

Fonti ufficiali su CVE-2026-120534

Serve aiuto con il tuo sito WordPress?

Se non sai quale versione del plugin hai, se il tuo hosting non ti dà accesso ai log o se hai il dubbio che qualcuno sia già entrato, posso verificare l'esposizione, mettere in sicurezza il sito e, se serve, eseguire l'analisi forense. Richiedi un preventivo gratuito, rispondo entro 24 ore, oppure scrivimi dalla pagina contatti.

#CVE#CVE-2026-120534#ACF Extended PRO#WordPress#code injection#sicurezza siti web

Condividi l'articolo

LinkedInTwitter