CVE-2026-120554: escalation ad admin nel plugin Import and export users, verifica e patch

Vincenzo Katriel Giuva4 novembre 20266 min di lettura
CVE-2026-120554: escalation ad admin nel plugin Import and export users, verifica e patch

Se sul tuo WordPress è installato il plugin Import and export users and customers (cartella import-users-from-csv-with-meta) e assegni ruoli personalizzati a collaboratori o fornitori, la vulnerabilità CVE-2026-120554 ti riguarda. Un utente già autenticato con un ruolo delegato limitato può diventare amministratore. Non risulta sfruttamento attivo, ma il punteggio è 8.8 e la condizione di partenza è comune nei siti gestiti da più persone. Qui spiego cosa fare.

Cosa è successo: la vulnerabilità CVE-2026-120554 in Import and export users and customers

La descrizione ufficiale parla di una privilege escalation causata da una sequenza di scrittura non atomica nella funzione ACUI_Cron::save_settings(). Quando un utente salva le impostazioni dell'importazione pianificata via cron, il plugin scrive prima quattro opzioni (acui_cron_activated, acui_cron_configured_by, acui_cron_user_id, acui_cron_path_to_file) e solo dopo controlla se chi invia il modulo ha il diritto di assegnare un ruolo. Se il controllo fallisce, la funzione chiama wp_die(), ma le opzioni sono già state salvate. Il percorso del file CSV può quindi essere ripuntato da un utente che non dovrebbe poterlo fare.

Chi è colpito: versioni vulnerabili di Import and export users and customers

  • Plugin: Import and export users and customers per WordPress.
  • Versioni vulnerabili: tutte fino alla 2.5.11 inclusa.
  • Prerequisiti dell'attacco: l'attaccante deve avere un account con un ruolo personalizzato che includa la capability create_users ma non promote_users né edit_users; deve esistere un salvataggio precedente del cron fatto da un amministratore; nessun salvataggio corretto deve intervenire prima del successivo tick del cron, che elabora il file CSV indicato dall'attaccante.

Chi usa il plugin solo con account amministratore e senza ruoli delegati ha una superficie di attacco più ridotta, ma deve comunque aggiornare.

Quanto è grave: punteggio CVSS e sfruttamento attivo

Il punteggio CVSS 3.1 è 8.8 (HIGH), vettore AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. In pratica: attacco via rete, bassa complessità, servono privilegi bassi (un account autenticato), nessuna interazione da parte di altri utenti, impatto alto su riservatezza, integrità e disponibilità. L'attaccante ottiene un'escalation a Amministratore, cioè il controllo completo del sito: installazione di plugin, modifica di file tramite l'editor, accesso ai dati degli utenti. Al momento la vulnerabilità non risulta nel catalogo CISA KEV e non è noto uno sfruttamento attivo. Questo non è un motivo per rinviare: i plugin WordPress sono tra i bersagli più scansionati e la finestra tra pubblicazione ed exploit è spesso breve.

Come capire se sei esposto: verifica versione, esposizione e log

Versione del plugin

  • Da bacheca: Plugin > Plugin installati, cerca Import and export users and customers e leggi la versione.
  • Da WP-CLI: wp plugin get import-users-from-csv-with-meta --field=version.
  • Da filesystem: apri wp-content/plugins/import-users-from-csv-with-meta/import-users-from-csv-with-meta.php e leggi l'intestazione Version.

Ruoli delegati a rischio

Con WP-CLI: wp role list e poi wp cap list NOME_RUOLO per ogni ruolo personalizzato. Cerca ruoli che hanno create_users ma non promote_users o edit_users. Se usi un plugin di gestione ruoli, controlla lì le stesse capability. Elenca poi chi li possiede: wp user list --role=NOME_RUOLO.

Stato del cron del plugin

Leggi le opzioni coinvolte: wp option get acui_cron_activated, wp option get acui_cron_path_to_file, wp option get acui_cron_user_id, wp option get acui_cron_configured_by. Un percorso del CSV che non riconosci, o un acui_cron_configured_by diverso dall'amministratore che ha impostato l'importazione, è un indicatore da approfondire.

Log e indicatori di compromissione

  • wp user list --role=administrator --fields=ID,user_login,user_registered: cerca amministratori nuovi o non riconosciuti.
  • Log del web server: richieste POST verso le pagine di amministrazione del plugin da account con ruoli limitati, e chiamate a wp-cron.php in orari anomali.
  • File CSV presenti nella cartella uploads o altrove che contengano la colonna del ruolo impostata su administrator.
  • Plugin, temi o file PHP comparsi di recente senza una modifica autorizzata.

Come risolvere la vulnerabilità CVE-2026-120554: patch, aggiornamento e rimedio

Il rimedio è aggiornare il plugin a una versione successiva alla 2.5.11. Il numero esatto della versione corretta va verificato sul changelog del plugin nel repository WordPress.org e nel changeset 3775652 linkato nelle fonti, che contiene la modifica al codice. L'aggiornamento si applica da Plugin > Plugin installati > Aggiorna oppure con wp plugin update import-users-from-csv-with-meta. Prima di procedere, fai un backup di file e database. Se la versione aggiornata non fosse ancora disponibile per la tua installazione, applica i workaround della sezione successiva e considera la disattivazione temporanea del plugin.

Cosa fare subito: mitigazioni e hardening

  1. Aggiorna il plugin appena la versione corretta è verificata. È l'unica misura che chiude davvero il problema.
  2. Disattiva l'importazione pianificata (cron) del plugin finché non hai aggiornato, se non ti serve. Senza tick del cron l'attacco non si completa.
  3. Rivedi i ruoli personalizzati: togli create_users a chi non ne ha bisogno reale. Un ruolo che può creare utenti ma non promuoverli è esattamente il profilo sfruttabile.
  4. Riduci gli account: elimina utenti inattivi e collaboratori che non lavorano più sul sito.
  5. Ruota le credenziali degli amministratori e attiva l'autenticazione a due fattori, così un eventuale account amministratore creato in modo illecito non resta nascosto a lungo.
  6. Limita l'accesso a wp-admin per IP o tramite VPN, dove l'organizzazione lo consente.

Questi passaggi rientrano nei controlli periodici che descrivo in sito WordPress sicuro: 10 controlli di sicurezza. Un caso simile di escalation ad amministratore in un plugin l'ho trattato per CVE-2026-120318 in Product Gallery Slider.

Se sospetti una compromissione: incident response e analisi forense

Se trovi un amministratore sconosciuto o un CSV sospetto, non limitarti a cancellare l'utente e ad aggiornare. Un attaccante con privilegi di amministratore ha avuto il tempo di lasciare backdoor nei file o nel database. La sequenza corretta è questa:

  1. Non sovrascrivere nulla: niente ripristini di backup e niente pulizie frettolose prima di aver conservato le prove.
  2. Preserva i log del web server, del database e di WordPress, e fai una copia forense dei file e del database prima di qualsiasi intervento.
  3. Isola il sito: modalità manutenzione o blocco a livello di firewall, mantenendo il server acceso per non perdere dati volatili.
  4. Cambia tutte le password (WordPress, database, FTP/SFTP, pannello hosting) e invalida le sessioni attive.
  5. Valuta la notifica al Garante entro 72 ore ai sensi del GDPR se il sito contiene dati personali di clienti o utenti.

Per queste situazioni offro un servizio di incident response con preventivo a prezzo fisso, indicativamente da 1.500 a 6.000 € a seconda dell'estensione, e audit di sicurezza del sito. Chi preferisce prevenire può affidarmi la manutenzione del sito WordPress, che include il monitoraggio degli aggiornamenti dei plugin.

Fonti ufficiali

Hai bisogno di una verifica sul tuo sito?

Se non sai quali ruoli sono attivi sul tuo WordPress, se il cron del plugin è configurato o se qualcuno ha già sfruttato questa falla, posso fare la verifica e, se serve, l'analisi forense. Scrivimi dalla pagina preventivo gratuito: rispondo entro 24 ore, anche su WhatsApp.

#CVE#CVE-2026-120554#WordPress#Import and export users#privilege escalation#sicurezza plugin

Condividi l'articolo

LinkedInTwitter