Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-11551-PoC — Preuve de concept d'exploitation pour CVE-2026-11551, une vulnérabilité d'élévation de privilèges non authentifiée dans le plugin Branda White Label pour WordPress, permettant la prise de contrôle de compte via un double hachage de mot de passe. | Kitploit
Outils/GitHubGitHub/ubaydev/cve-2026-11551-poc
Escalade de PrivilègesAnalyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionAuthentification
GitHububaydev/cve-2026-11551-poc

CVE-2026-11551-PoC

Preuve de concept d'exploitation pour CVE-2026-11551, une vulnérabilité d'élévation de privilèges non authentifiée dans le plugin Branda White Label pour WordPress, permettant la prise de contrôle de compte via un double hachage de mot de passe.

11il y a 2 moisPas 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

CVE-2026-11551 - Privilège non authentifié dans White Label & Branding, Free Login Page Customizer

White Label & Branding, Free Login Page Customizer <= 3.4.29 - Élévation de privilèges non authentifiée via prise de contrôle de compte

Processus complet WordPress Core → Filtre Branda :

root@kitploit:~
wp_update_user( $userdata )
    │
    ├── wp_hash_password( $userdata['user_pass'] )   ← Line 2709: SUDAH DI-HASH
    │
    └── wp_insert_user( $userdata )
            │
            ├── $user_pass = $userdata['user_pass']  ← Line 2228: HASHED
            │
            ├── $data = compact('user_pass', ...)    ← Line 2469: HASHED
            │
            ├── apply_filters('wp_pre_inserter_id)
            │       │
            │       └── Branda: pre_insert_u
            │               │
            │               ├── query wp_sig['user_login']
            │               ├── if meta['pas
            │               │   $data['user_ta['password'])
            │               │                                        ↑
            │                           ┌───
            │                           │
            │                           ↓
            │               DOUBLE HASH: wp_d($raw))
            │
            └── $wpdb->update( $wpdb->users, $data, ... )  ← Line 2515: DOUBLE HASH TERSIMPAN

Code vulnérable (inc/modules/login-screen/signup-password.php:230-251)

root@kitploit:~
/**
 * BRANDA - signup-password.php
 * Filter: wp_pre_insert_user_data
 */
public function pre_insert_user_data( $data,
    // ❌ TIDAK ADA CEK: if ($update) return
    // ❌ Filter ini JALAN untuk INSERT DAN

    if ( is_multisite() ) {
        global $wpdb;

        // ❌ $data['user_login'] dari POST n edit user
        $query = $wpdb->prepare(
            "SELECT meta FROM {$wpdb->signup
            $data['user_login']  // ← bisa diubah attacker
        );
        $result = $wpdb->get_var( $query );
        $meta   = maybe_unserialize( $result

        if ( is_array( $meta ) && isset( $me
            // ❌ DOUBLE HASH: WordPress SUDAH hash sebelum filter ini jalan
            // $meta['password'] = "mysecret
            // wp_hash_password("mysecretpasama dari WP core)
            // wp_hash_password("$P$Bxyz..."dari Branda)
            $data['user_pass'] = wp_hash_pas

            unset( $meta['password'] );
            $wpdb->update(
                $wpdb->signups,
                array( 'meta' => maybe_seria
                array( 'user_login' => $data
            );
        }
        return $data;
    }
    // ...
}

Code du noyau WordPress à l'origine de la vulnérabilité :

  1. wp_update_user() — Lignes 2706-2709
root@kitploit:~
// wp-includes/user.php:2706
if ( ! empty( $userdata['user_pass'] ) && $u_user_data->user_pass ) {
    $plaintext_pass        = $userdata['user
    $userdata['user_pass'] = wp_hash_passwor // ← HASH #1
}
  1. wp_insert_user() — Ligne 2228
root@kitploit:~
// wp-includes/user.php:2228 (UPDATE path)
$user_pass = ! empty( $userdata['user_pass'] $old_user_data->user_pass;
// $user_pass sekarang = "$P$Bxyz...SUDAH HASH"
  1. wp_insert_user() — Ligne 2505
root@kitploit:~
// wp-includes/user.php:2505
$data = apply_filters( 'wp_pre_insert_user_dd, $userdata );
// Branda filter jalan, $data['user_pass'] SUDAH HASH dari line 2228

Scénario d'attaque : prise de contrôle de compte via Admin

Mise en place

  1. Multisite WordPress avec Branda Signup
  2. Il y a une inscription en attente dans wp_signups :
root@kitploit:~
   ┌─────────────┬──────────────────────────┐
   │ user_login   │ meta (serialized)       │
   ├─────────────┼──────────────────────────│
   │ victim_user  │ a:1:{s:8:"password";s:10:"H4cker123!"}│
   └─────────────┴──────────────────────────┴
  1. Cible : l'utilisateur « admin_user » (ID=2) avec le rôle Administrateur

Déroulement de l'exploitation

ÉTAPE 1 : L'attaquant se connecte à WP-Admin (via le web ou via un exploit CSRF pour déclencher une action admin)

ÉTAPE 2 : L'attaquant ouvre /wp-admin/user-edit.php (modification de admin_user)

ÉTAPE 3 : L'attaquant change le user_login de admin_user en « victim_user »

root@kitploit:~
        ┌────────────────────────────────────────────┐
        │ Field: username                            │
        │ Value: victim_user  ← DIUBAH               │
        └────────────────────────────────────────────┴

ÉTAPE 4 : Le formulaire est soumis → wp_update_user() est appelé

ÉTAPE 5 : Flux du noyau WordPress :

root@kitploit:~
        wp_update_user({ID: 2, user_login: "victim_user", ...})
            │
            ├── user_pass = wp_hash_password(old_password)  ← HASH #1
            │
            └── wp_insert_user({ID: 2, user_login: "victim_user", user_pass: "$P$Bhash1"})
                    │
                    └── apply_filters('wp_pre_insert_user_data', $data, true, 2)
                            │
                            └── Branda: pre_insert_user_data()
                                    │
                                    ├── $data['user_login'] = "victim_user"
                                    │
                                    ├── SELECT meta FROM wp_signups WHERE user_login = "victim_user"
                                    │   → meta = 'a:1:{s:8:"password";s:10:"H4cker123!"}'
                                    │
                                    ├── $meta['password'] = "H4cker123!"
                                    │
                                    └── $datword("H4cker123!")
                                             ← HASH #2 (DOUBLE!)

ÉTAPE 6 : table wp_users mise à jour :

root@kitploit:~
        ┌────┬────────────┬──────────────────────────────────┐
        │ ID │ user_login │ user_pass                        │
        ├────┼────────────┼──────────────────────────────────┼
        │ 2  │ victim_user│ $P$Bhash2  ← DOUBLE HASH!        │
        └────┴────────────┴──────────────────────────────────┘

ÉTAPE 7 : admin_user désormais :

root@kitploit:~
    - Nom d'utilisateur : victim_user
    - Mot de passe : H4cker123! mais HASHÉ 2 fois
    - Échec de connexion ! → Verrouillage du compte

ÉTAPE 8 : Pendant ce temps, l'attaquant peut :

root@kitploit:~
    - Se connecter avec les identifiants de l'inscription si la meta n'a pas encore été nettoyée
    - Ou refaire une inscription avec le même user_login

Références :

  • https://plugins.trac.wordpress.org/browser/branda-white-labeling/trunk/inc/modules/login-screen/signup-password.php?rev=3429115#L232
  • https://plugins.trac.wordpress.org/browser/branda-white-labeling/tags/3.4.29/inc/modules/login-screen/signup-password.php#L232
  • https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/branda-white-labeling/branda-white-label-branding-free-login-page-customizer-3429-unauthenticated-privilege-escalation-via-account-takeover
Télécharger l’outil