Une vulnérabilité critique affectant le cœur de WordPress, baptisée « wp2shell », expose des centaines de millions de sites Web à une prise de contrôle totale sans aucune condition préalable. Découverte par l'équipe de recherche Assetnote de Searchlight Cyber, cette chaîne d'exploitation repose sur deux failles distinctes identifiées sous les références CVE-2026-63030 et CVE-2026-60137. Le vecteur d'attaque ne requiert ni authentification, ni plugin tiers : un simple visiteur anonyme peut envoyer une requête POST unique à l'API REST de WordPress et obtenir l'exécution de commandes sur le serveur.
Versions concernées et correctifs La vulnérabilité a été introduite dans la version 6.9 du CMS, publiée le 2 décembre 2025. Sont vulnérables toutes les versions allant de la 6.9.0 à la 6.9.4, ainsi que les versions 7.0.0 et 7.0.1. Les versions antérieures à la 6.9.0 (jusqu'à la 6.8.5 incluse) ne sont pas affectées. L'éditeur WordPress a diffusé des correctifs le 17 juillet 2026 : la version 6.9.5 pour la branche 6.9, et la version 7.0.2 pour la branche 7.0. En raison de la sévérité de la faille, des mises à jour forcées ont été activées via le système de mise à jour automatique pour les installations concernées.
Origine et découverte Le chercheur Adam Kues, membre d'Assetnote (la branche de Searchlight Cyber spécialisée dans la gestion de surface d'attaque), a identifié la faille et l'a signalée à WordPress via le programme HackerOne. La découverte a été rendue publique le 17 juillet 2026 sous le nom de code wp2shell. Parallèlement, un autre rapport de vulnérabilité – une injection SQL facilitée – a été soumis par une équipe composée de TF1T, dtro et haongo, et a également été corrigé dans la même mise à jour de sécurité.
Fonctionnement technique simplifié
L'exploitation combine deux bugs présents dans le noyau de WordPress. Le premier bug (CVE-2026-63030) réside dans le point d'accès de traitement par lots de l'API REST, accessible via l'URL /wp-json/batch/v1 ou le paramètre rest_route=/batch/v1. Ce point d'accès accepte une seule requête POST contenant plusieurs sous-requêtes. Lors de la première passe de traitement, WordPress analyse chaque sous-requête, valide ses paramètres et les nettoie. Les résultats sont stockés dans deux tableaux : $matches (association route-gestionnaire) et $validation (succès ou erreur). En cas d'échec d'analyse (par exemple une sous-requête mal formée), le code ajoute une entrée au tableau $validation mais n'en ajoute aucune au tableau $matches. Ce décalage d'indice provoque une désynchronisation entre les deux tableaux pour toutes les sous-requêtes suivantes.
Cette désynchronisation de tableau permet alors d'atteindre le deuxième bug (CVE-2026-60137) : une injection SQL dans le noyau de WordPress. En manipulant les sous-requêtes, un attaquant peut faire exécuter à la base de données des requêtes SQL arbitraires, ce qui ouvre la voie à l'exécution de code à distance complète sans authentification. Le correctif, qui ne touche que trois fichiers (class-wp-rest-server.php, class-wp-query.php et rest-api.php) et seulement seize lignes de code, a été rendu public.
Mesures de protection
La solution prioritaire et recommandée est de mettre à jour immédiatement son installation vers WordPress 7.0.2 (ou 6.9.5 pour la branche 6.9). En attendant la mise à jour, plusieurs mesures temporaires sont possibles : installer le plugin « Disable WP REST API » pour bloquer l'accès à l'API REST pour les utilisateurs non authentifiés ; configurer un pare-feu applicatif (WAF) pour interdire les requêtes vers /wp-json/batch/v1 et celles contenant rest_route=/batch/v1 ; ou encore déposer un petit plugin personnalisé qui vérifie l'authentification pour toute requête au point d'accès batch. Ces solutions de contournement peuvent toutefois impacter le fonctionnement légitime du site et ne doivent être considérées que comme des palliatifs d'urgence.
Exploitation publique et détection Des codes d'exploitation (proof-of-concept) et des outils de scan non destructifs ont été publiés par la communauté de sécurité, notamment le scanner open source « wp2shell-scan » capable de détecter les instances vulnérables via des méthodes temporelles ou basées sur les erreurs. La plateforme FullHunt a également intégré une fonctionnalité de détection dans son service de gestion de surface d'attaque. Les administrateurs sont invités à vérifier rapidement leurs installations et à appliquer le correctif sans délai. Compte tenu de l'ampleur du parc estimé à plus de 500 millions de sites, cette vulnérabilité constitue l'une des plus graves jamais découvertes dans le CMS le plus utilisé au monde.