
Exploit et analyse de CVE-2023-3460, une élévation de privilèges critique dans le plugin WordPress Ultimate Member, avec environnement de reproduction et conseils d'atténuation.
| CVE ID | CVSS Score | Discovered | Affected Plugin | Vulnerability Type |
|---|---|---|---|---|
| CVE-2023-3460 | 07/04/2023 | Ultimate Member | Unauthorized Admin Access |
Cette étude se concentre sur la CVE¹-2023-3460, une vulnérabilité critique affectant le plugin "Ultimate Member" de Wordpress, permettant une escalade de privilèges non autorisée. Ce plugin est largement répandu et utilisé pour la gestion des profils sur des sites WordPress. Cette vulnérabilité présente un risque majeur car elle permet à un attaquant d'obtenir des droits d'administrateur et donc le contrôle total du site. C'est pourquoi cette faille a été classée comme critique et notée 9.1 sur l'échelle CVSS par le NIST².
La CVE-2023-3460 exploite une faille dans la gestion des rôles et des permissions par le plugin. Dans WordPress, la fonction WP_Capabilities³ est utilisée pour gérer les rôles et les permissions des utilisateurs. Cette fonction permet aux administrateurs de définir des capacités spécifiques pour chaque rôle utilisateur. Toutefois, une mauvaise utilisation de cette fonction peut conduire à des vulnérabilités d'élévation de privilèges.
Dans le cas d'Ultimate Member, la vulnérabilité permet à un attaquant de contourner la vérification des capacités WP et d'obtenir un accès de niveau administrateur au site. Le plugin fonctionne en utilisant une liste prédéfinie de clés de métadonnées utilisateur qui ne devraient pas être manipulées par les utilisateurs. Cependant, cette approche de sécurité, basée sur des listes de blocage, est souvent insuffisante car elle laisse des possibilités de contournement.
WordPress gère les rôles et les permissions des utilisateurs à travers une structure appelée wp_capabilities. Cette structure est une représentation sérialisée des différents rôles et permissions accordés aux utilisateurs. Par exemple, un administrateur aura un ensemble de capacités différent d'un éditeur ou d'un contributeur. Ces capacités sont stockées dans la base de données WordPress sous forme de tableaux sérialisés dans la table wp_usermeta.
La faille CVE-2023-3460 trouve son origine dans l'implémentation de la gestion des rôles et des permissions par Ultimate Member. Le plugin opère en utilisant une liste prédéfinie de clés de métadonnées utilisateur que les utilisateurs ne devraient pas manipuler. Cette liste est utilisée pour vérifier si les utilisateurs tentent d'enregistrer ces clés lors de la création d'un compte. Cette approche est un anti-pattern de sécurité courant, où le blocage des entrées connues comme nuisibles (listes de blocage) peut sembler intuitif, mais s'avère plus complexe qu'attendu et laisse souvent place à des contournements de sécurité.
Ici, Ultimate Member utilise une vérification insuffisante des métadonnées soumises lors de l'enregistrement des utilisateurs. Le plugin utilise une fonction appelée is_metakey_banned pour vérifier si les métadonnées soumises par l'utilisateur sont autorisées. Cette fonction vérifie si les métadonnées soumises sont présentes dans la liste des métadonnées bannies. Si c'est le cas, la fonction renvoie true et l'enregistrement de l'utilisateur est bloqué. Sinon, la fonction renvoie false et l'enregistrement de l'utilisateur est autorisé.
Cependant, Wordpress accepte certains caractères accentués comme des caractères par défaut. Si un utilisateur soumet des métadonnées avec des caractères accentués, la fonction is_metakey_banned ne les détectera pas et l'enregistrement de l'utilisateur sera autorisé.
Le plugin Ultimate Member est largement utilisé dans divers environnements, allant de petits blogs personnels à de grands sites e-commerce. Aucune hypothèse spécifique ne peut être faite sur les compétences en sécurité informatique des utilisateurs finaux ou des administrateurs des sites.
Les serveurs hébergeant les sites WordPress sont généralement situés dans des centres de données sécurisés. Pour les sites personnels, la sécurité physique dépend de l'environnement individuel de l'utilisateur.
On suppose que le plugin Ultimate Member est installé et configuré correctement selon les instructions officielles. Le site WordPress est supposé être maintenu à jour, avec des mesures de sécurité de base en place.
| Menaces | B1 (Confidentialité des données utilisateur) | B2 (Intégrité du site Web) | B3 (Intégrité du plugin Ultimate Member) |
|---|---|---|---|
| M1 Accès non autorisé | X | X | X |
| M2 Injection de code malveillant | X | X | |
| M3 Fuite de données | X | ||
| M4 Détérioration de la réputation | X |
7.5 Les fonctions de sécurité