
Advanced Custom Fields: Extended <= 0.9.2.5 - Escalation di privilegi non autenticata tramite bypass della validazione del parametro '_acf_post_id'
Advanced Custom Fields: Extended <= 0.9.2.5 - Escalation dei privilegi non autenticata tramite bypass della validazione del parametro '_acf_post_id' Questa vulnerabilità di sicurezza critica (CVSS 9.8) riguarda tutte le versioni del popolare plugin WordPress Advanced Custom Fields: Extended (ACF Extended) a partire dalla versione 0.9.2.5.
Sebbene corretta nella versione 0.9.2.6, la vulnerabilità funziona come segue:
Funzione problematica: Alla radice della vulnerabilità c'è la fiducia non verificata che la funzione after_validate_save_post() ripone nel parametro POST denominato _acf_post_id. Il plugin non sottopone questo parametro ad alcun processo di validazione o autenticazione.
Bypass della validazione: Manipolando il parametro _acf_post_id, l'attaccante induce la funzione a selezionare silenziosamente un ramo di pulizia che ignora tutti gli errori di validazione che non portano il prefisso "acfe:". Questo disabilita due controlli di sicurezza critici:
un errore di validazione dell'elenco dei permessi di ruolo aggiunto da acfe_field_user_roles::validate_front_value().
**Errore di protezione dei privilegi di amministratore aggiunto da acfe_module_form_action_user::validate_action().
Creazione non autorizzata di un amministratore: Dopo che questi controlli sono stati bypassati, la funzione wp_insert_user() viene eseguita con l'argomento di ruolo "administrator" fornito dall'attaccante. Di conseguenza, viene creato sul sistema un nuovo account amministratore da parte di un utente non autenticato, contrariamente allo scopo previsto del plugin.
Flusso logico del codice di exploit Il seguente script Python è una prova di concetto che dimostra come questa vulnerabilità possa essere sfruttata. Il codice funziona automatizzando tutti i passaggi necessari.