La chaîne d'exploitation « wp2shell » constitue un incident de sécurité critique visant l'architecture fondamentale de l'écosystème WordPress. Il s'agit d'une vulnérabilité d'exécution de code à distance (RCE) avant authentification, résidant entièrement au sein du cœur de WordPress. Son exploitation ne nécessite ni plugin tiers, ni thème, ni accès authentifié. Une simple requête HTTP spécialement conçue, envoyée à une installation par défaut « standard », peut permettre à un attaquant non authentifié de prendre le contrôle total du système.
La gravité de cette menace se reflète dans son score CVSS de 9,8. La CISA a ajouté ces deux CVE à son catalogue des vulnérabilités connues exploitées (KEV) après avoir observé des activités d’exploitation peu après la divulgation. Les données indiquent qu’environ 60 % des organisations utilisant WordPress étaient initialement vulnérables au moment de la divulgation, une part importante d’entre elles exposant directement ces serveurs à Internet.
Une exploitation réussie peut permettre la compromission totale de la base de données, un accès persistant au serveur web via des webshells obfusquées, ainsi que la création non autorisée de comptes administratifs.
Présentation de la vulnérabilité
La chaîne d’exploitation wp2shell combine plusieurs vulnérabilités du cœur de WordPress pour parvenir à une élévation de privilèges sans authentification. L’attaque exploite d’abord une faille dans le traitement par lots des requêtes de l’API REST afin de contourner la validation des requêtes et les contrôles d’autorisation. Cet accès est ensuite utilisé pour exploiter une vulnérabilité d’injection SQL dans la gestion par WP_Query du paramètre author_exclude.
À l’aide de cette injection SQL, un attaquant peut manipuler des objets WordPress mis en cache et exploiter le mécanisme de mise en cache oEmbed pour réécrire des données malveillantes dans la base de données. L’exploit tire ensuite parti de la fonctionnalité de « changeset » du Customizer pour hériter temporairement des autorisations d’un compte administrateur, créant ainsi un utilisateur administratif persistant.
En résumé, l’attaque se déroule en quatre étapes :
Combinées, ces vulnérabilités peuvent permettre à un attaquant non authentifié d'obtenir le contrôle administratif total d'une installation WordPress vulnérable.
Les vulnérabilités suivantes du cœur de WordPress sont exploitées dans cette attaque :
Versions concernées et versions corrigées
|
Branche |
Versions concernées |
Versions corrigées |
Profil d'impact |
|
WordPress 7.0.x |
7.0.0 – 7.0.1 |
7.0.2 |
Chaîne RCE complète |
|
WordPress 6.9.x |
6.9.0 – 6.9.4 |
6.9.5 |
Chaîne RCE complète |
|
WordPress 6.8.x |
6.8.0 – 6.8.5 |
6.8.6 |
Injection SQL uniquement |
|
WordPress 7.1 (bêta) |
7.1 Bêta 1 |
7.1 Bêta 2 |
Chaîne RCE complète |
Évaluation stratégique : risque lié à WordPress
Historiquement, la sécurité de WordPress s’est concentrée sur le « périmètre des plugins ». Cette exploitation démontre que des risques de sécurité importants peuvent provenir du cœur de WordPress lui-même et non pas uniquement des extensions tierces. Les organisations doivent veiller à ce que leurs instances WordPress soient intégrées dans des programmes formels de gestion des vulnérabilités et des correctifs.
D’un point de vue défensif, WordPress doit être considéré comme une cible de grande valeur. Son déploiement généralisé dans les environnements connectés à Internet en fait une plateforme attrayante pour les acteurs malveillants, ce qui augmente le risque de recherche de vulnérabilités, d’analyses automatisées et de tentatives d’exploitation.
Piliers stratégiques de la gouvernance
Recherche de menaces et indicateurs de compromission (IoC)
Signaux réseau
Artéfacts basés sur l’hôte
IOC connus
|
Type d'IOC |
Indicateur |
Description |
|
Adresse IP |
34.81.132.62 |
Tentative d'exploitation |
|
Adresse IP |
79.177.131.206 |
Tentative d'exploitation |
|
Adresse IP |
15.157.135.170 |
Tentative d'exploitation |
|
Adresse IP |
94.100.52.128 |
Tentative d'exploitation |
|
Adresse IP |
172.235.128.52 |
Balayage de masse |
|
Hachage SHA-1 |
2a1410d8e2a8337ac2171cedea8c0fdc47c647a0 |
Plugin CMSmap obfusqué |
|
Hachage SHA-1 |
58eca847e9eae9e6b08cc211f1559817b71bc4cc |
Webshell PHP |
|
Hachage SHA-1 |
ebea44890f434d5d67ede22009a3f4bb5cac33f8 |
Webshell PHP |
|
Hachage SHA-1 |
d9a220c8039f1c4d72cae7ccb8b3a33dec8815be |
Webshell PHP |
|
Hachage SHA-1 |
e9756e2338f84746007235e4cab7a70d5b3ca47f |
Webshell PHP |
Mesures d'atténuation et de remédiation
Les organisations doivent immédiatement mettre à jour le cœur de WordPress vers les versions 7.0.2, 6.9.5 ou 6.8.6. Bien que WordPress.org ait déployé des mises à jour forcées, les administrateurs doivent « faire confiance mais vérifier » ces installations, car la réussite de la mise à jour automatique n’est pas garantie sur toutes les configurations d’hébergement. La priorité doit être donnée aux instances des branches 6.9.x et 7.0.x, qui sont vulnérables à la chaîne complète d'exécution de code à distance (RCE).
Mesures d'atténuation temporaires
Lorsque l'application immédiate d'un correctif n'est pas possible, les administrateurs doivent mettre en place des règles WAF afin de bloquer tout accès non authentifié aux points de terminaison batch de l'API REST concernés. Le décodage des URL doit être effectué avant la vérification de la correspondance avec les règles afin de détecter les requêtes encodées.
Points de terminaison bloqués :
Actions à entreprendre après une compromission
S'il y a des raisons de penser qu'une exploitation a eu lieu, les mesures suivantes sont recommandées :
Si l’une des menaces décrites dans ce bulletin vous préoccupe ou si vous avez besoin d’aide pour déterminer les mesures à prendre afin de vous protéger contre les menaces les plus graves pesant sur votre organisation, veuillez contacter votre chargé de compte ou nous contacter pour savoir comment protéger votre organisation.