
Advanced Custom Fields: Extended <= 0.9.2.5 - Élévation de privilèges non authentifiée via contournement de validation vers le paramètre '_acf_post_id'
Advanced Custom Fields: Extended <= 0.9.2.5 - Élévation de privilèges non authentifiée via un contournement de validation du paramètre '_acf_post_id' Cette vulnérabilité de sécurité critique (CVSS 9.8) affecte toutes les versions du plugin WordPress populaire Advanced Custom Fields: Extended (ACF Extended) à partir de la version 0.9.2.5.
Bien que corrigée dans la version 0.9.2.6, la vulnérabilité fonctionne comme suit :
Fonction problématique : À l'origine de la vulnérabilité se trouve la confiance non vérifiée que la fonction after_validate_save_post() accorde au paramètre POST nommé _acf_post_id. Le plugin ne soumet pas ce paramètre à un processus de validation ou d'authentification.
Contournement de validation : En manipulant le paramètre _acf_post_id, l'attaquant force la fonction à sélectionner silencieusement une branche de nettoyage qui ignore toutes les erreurs de validation ne portant pas le préfixe "acfe:". Cela désactive deux contrôles de sécurité critiques :
une erreur de validation de la liste des permissions de rôle ajoutée par acfe_field_user_roles::validate_front_value().
**Erreur de protection des privilèges d'administrateur ajoutée par acfe_module_form_action_user::validate_action().
Création non autorisée d'un administrateur : Après le contournement de ces contrôles, la fonction wp_insert_user() est exécutée avec l'argument de rôle "administrator" fourni par l'attaquant. En conséquence, un nouveau compte administrateur est créé sur le système par un utilisateur non authentifié, contrairement à l'objectif visé du plugin.
Flux logique du code d'exploitation Le script Python suivant est une preuve de concept démontrant comment cette vulnérabilité peut être exploitée. Le code fonctionne en automatisant toutes les étapes nécessaires.