
Vérificateur d'exposition non intrusif pour la chaîne RCE pré-authentification wp2shell de WordPress (CVE-2026-63030 / CVE-2026-60137).
Vérificateur d'exposition non intrusif pour la chaîne RCE pré-authentification "wp2shell" de WordPress (CVE-2026-63030 + CVE-2026-60137).
⚠️ Utilisation autorisée uniquement. Exécutez ceci uniquement sur des instances WordPress que vous possédez ou pour lesquelles vous avez une autorisation explicite de test. C'est une aide au triage, pas un exploit. Scanner des systèmes sans permission peut être illégal.
Étant donné une URL, wp2shell-check :
generator sur la page d'accueil (passif).?rest_route=/batch/v1) pour vérifier si la route batch REST est accessible.Il est conçu pour un triage rapide de flotte : quels sont mes sites sur une version affectée avec REST accessible ?
Deux failles WordPress Core chaînées, divulguées avec une version d'urgence le 2026-07-17 :
| CVE | Type | Versions affectées |
|---|---|---|
| CVE-2026-63030 | Confusion de route batch API REST (activateur RCE) | 6.9.0–6.9.4, 7.0.0–7.0.1 |
| CVE-2026-60137 | Injection SQL WP_Query author__not_in | 6.8.0 et ultérieur (6.8.0–6.8.5 = SQLi uniquement) |
Enchaînées, elles permettent à un attaquant non authentifié d'atteindre une injection SQL et d'escalader vers une exécution de code à distance sur une installation par défaut — sans plugins, sans connexion. La moitié RCE ne s'applique que lorsqu'un cache d'objets persistant n'est pas utilisé.
Corrigé dans : 6.8.6 (SQLi uniquement), 6.9.5, 7.0.2 (et 7.1 Bêta 2+). WordPress a activé les mises à jour automatiques forcées pour les sites concernés — vérifiez que la mise à jour a bien été appliquée.
Signalé par Adam Kues (Assetnote / Searchlight Cyber) via le programme HackerOne de WordPress.
Nécessite Python 3.9+ et requests.
# with uv
uv pip install requests
# or plain pip
pip install requests
python wp2shell.py https://target.example
Exemple de sortie :
https://target.example: VULNERABLE (RCE) [6.9.3]
generator est souvent supprimée ou usurpée ; une version manquante donne wordpress not detected, pas une garantie que le site est sûr ou non-WordPress./wp-json/batch/v1 et ?rest_route=/batch/v1 sur votre WAF, ou restreignez l'accès anonyme à l'API REST.Fourni tel quel, à des fins de tests de sécurité autorisés et éducatives uniquement. Vous êtes seul responsable de la façon dont vous l'utilisez.
| Verdict | Signification |
|---|
VULNERABLE (RCE) / VULNERABLE (SQLi) | Version affectée et route batch REST accessible → exposé sur une installation par défaut. Voir Limitations. |
version-affected (...), route unconfirmed | La version est dans une plage affectée, mais la route batch REST n'a pas répondu comme prévu. |
not affected | WordPress détecté, version en dehors des plages affectées. |
wordpress not detected | Aucune version trouvée (REST verrouillé, balise generator supprimée, ou pas WordPress). |
unreachable | L'hôte n'a pas répondu. |