
Outil CLI en lecture seule pour vérifier si un site WordPress est exposé à WP2Shell (CVE-2026-63030 / CVE-2026-60137)
Un outil en ligne de commande qui vérifie si un site WordPress est exposé à WP2Shell (CVE-2026-63030 et CVE-2026-60137). Il lit la version de WordPress et la surface de l'API REST via des requêtes en lecture seule et rend un verdict. Il n'exploite rien.
[!WARNING] Réservé aux tests autorisés. Utilisez-le uniquement sur des sites dont vous êtes propriétaire ou pour lesquels vous avez une autorisation écrite. L'auteur (
DanSec) décline toute responsabilité en cas d'utilisation abusive ou de dommages.
WP2Shell enchaîne une injection SQL (CVE-2026-60137) avec une faille du processeur de lots REST
(CVE-2026-63030) via le point de terminaison /wp-json/batch/v1, permettant une exécution de code
à distance non authentifiée sur une installation WordPress par défaut. Les deux CVE figurent dans le catalogue des failles connues et exploitées de la CISA.
| Branche | Vulnérable | Corrigé dans |
|---|---|---|
| 6.9.x | 6.9.0 à 6.9.4 | 6.9.5 |
| 7.0.x | 7.0.0 à 7.0.1 | 7.0.2 |
| 7.1 et ultérieur | non concerné | n/a |
Nécessite Python 3.8+.
pip install -r requirements.txt
requests et rich sont requis. sublist3r est optionnel (énumération de sous-domaines).
Pour une énumération plus large, installez subfinder
(un binaire Go, pas pip) et passez --subfinder.
# Vérifier un hôte
python wpScanner.py example.com --passive
# Énumérer les sous-domaines d'un domaine racine et vérifier chacun d'eux
python wpScanner.py example.com --subfinder --threads 8
Les résultats sont également écrits dans un CSV. Lorsque les sources de version divergent, l'outil classe sur la
plus basse pour éviter un faux feu vert. Une vérification à distance ne peut pas voir un correctif rétroporté qui a laissé
la chaîne de version inchangée, donc sur les hôtes que vous contrôlez, wp core version fait foi.
Mettez à jour le noyau vers 6.9.5, 7.0.2 ou 7.1+ (wp core update). Si vous ne pouvez pas corriger immédiatement, bloquez
/wp-json/batch/v1 au niveau de votre pare-feu et restreignez l'accès REST anonyme.
Fourni à des fins défensives et autorisées uniquement. Vous êtes responsable d'avoir la permission de vérifier tout hôte que vous lui désignez.
| Option | Description | Défaut |
|---|
-o, --output | Fichier de sortie CSV | WP2Shell_output.csv |
--passive | Vérifier uniquement l'hôte donné, ignorer l'énumération | désactivé |
--subfinder | Ajouter subfinder comme source de sous-domaines | désactivé |
--threads | Travailleurs simultanés | 1 |
--retries | Nouvelles tentatives par hôte | 1 |
--rate-limit | Requêtes max/sec (mono-thread, 0 = aucune limite) | 0 |
| Verdict | Signification |
|---|
VULNERABLE | Version affectée et le point de terminaison de lots est accessible. |
LIKELY_MITIGATED | Version affectée, mais le point de terminaison de lots semble bloqué ou REST est désactivé. |
PATCHED | Version corrigée, ou antérieure aux versions affectées. |
VERSION_UNKNOWN | WordPress détecté, version illisible. |
NOT_WORDPRESS | Aucune empreinte WordPress. |
ERROR | Inaccessible ou erreur réseau. |