
wp2shell — WordPress Core 事前認証RCEチェーン PoC(CVE-2026-63030 および CVE-2026-60137 用)
私の作業を評価していただける場合、USDT(TRC20): TQBA72kakjCZLnJt8fJYcD7dyQCEpzNtVN でプロジェクトのサポートを検討してください。
wp2shell は、WordPress Core の事前認証脆弱性チェーンを組み合わせたセキュリティ研究用の概念実証(Proof-of-Concept)です:
WP_Query SQL インジェクションこのチェーンは、これらの脆弱性を組み合わせることで、未認証の REST API リクエストから SQL インジェクション、権限昇格、管理者アカウント作成、最終的には認証済みリモートコード実行へと移行できることを示しています。
[!WARNING]
許可されたセキュリティ研究のみ
このプロジェクトは以下を目的としています:
- 脆弱性研究
- 防御的検証
- 許可されたペネトレーションテスト
- セキュリティラボ
- CTF および教育環境
所有しているシステム、または評価するための明示的な書面による許可を得たシステムのみをテストしてください。
許可なく第三者インフラストラクチャに対してこのプロジェクトを使用しないでください。
wp2shell は、2つの脆弱性間の相互作用を調査するための統合WordPress Coreセキュリティ研究ツールです:```text
CVE-2026-63030
|
v
REST API Batch Route Confusion
|
v
Validation / Dispatch Confusion
|
v
CVE-2026-60137
|
v
WP_Query SQL Injection
|
v
Blind SQL Access
|
v
Application / Object-State Manipulation
|
v
Privilege Escalation
|
v
Administrator Account Creation
|
v
Authenticated Code Execution
PoCはPythonの研究ツールとして実装されており、Python標準ライブラリを
使用します。サードパーティ製のPythonパッケージは不要です。
---
# 脆弱性チェーン
このプロジェクトは、WordPress Coreの2つの脆弱性を組み合わせています。```text
Unauthenticated Request
|
v
+----------------------+
| CVE-2026-63030 |
| REST Batch Route |
| Confusion |
+----------+-----------+
|
v
Validation Confusion
|
v
+----------------------+
| CVE-2026-60137 |
| WP_Query SQLi |
+----------+-----------+
|
v
Blind SQLi
|
v
Application-State Abuse
|
v
Privilege Escalation
|
v
Administrator Access
|
v
Authenticated RCE
```
重要なセキュリティ特性は、2つの脆弱性のそれぞれ単独ではなく、それらの相互作用にあります。
---
# CVE-2026-63030
## REST API バッチルート混乱
1つ目の脆弱性は、WordPress REST API バッチエンドポイントを通じたリクエスト処理に影響を与えます。
バッチ実装は、リクエスト位置でインデックス付けされた並列構造に、リクエストのマッチングおよび検証情報を保持します。
不正な形式のサブリクエストにより、それらの構造が同期を失う可能性があります。
これにより、オフバイワン(off-by-one)のディスパッチ状態が発生し、後続のリクエストが別のリクエストに関連付けられたハンドラーまたは検証コンテキストを使用して処理される可能性があります。
概念的に:```text
Request A
|
+-- validation entry
+-- matching entry
|
v
Malformed request
|
+-- internal state becomes desynchronized
|
v
Request B
|
+-- unexpected handler / validation context
```
The PoCは、ルート混乱が実際に到達可能かどうかを判断するための動作チェックを実行します。
---
# CVE-2026-60137
## WP_Query SQLインジェクション
2つ目の脆弱性は、`WP_Query` のSQL処理パスに影響します。
ルート混乱プリミティブが確立されると、攻撃者が制御する入力が脆弱なクエリパスに到達できるようになります。
PoCは、ブラインド差分テストによるSQLインジェクションの実証を示します。
調査機能には次のものが含まれます。
* ブールベースブラインドによる確認
* オプションの時間ベースの補強
* データベースのフィンガープリンティング
* 対応するスカラー値の抽出
* WordPressユーザーデータの調査
---
# チェーンが機能する仕組み
## 1. RESTバッチルート混乱
認証されていないリクエストがWordPress RESTバッチエンドポイントに到達します。
不正な形式のバッチサブリクエストにより、内部のリクエストマッチングおよび検証状態が非同期になります。
その結果、後続のリクエストが意図しないコンテキストで処理される可能性があります。
---
## 2. SQLインジェクション
ルート混乱プリミティブは、2つ目の脆弱性に必要なパスを提供します。
攻撃者が制御する値が、脆弱な `WP_Query` 処理パスに到達できるようになります。
これにより、ブラインドSQLインジェクションプリミティブが作成されます。
---
## 3. ブラインドSQL抽出
SQLインジェクションは、ブールベースブラインドの抽出チャネルとして使用できます。
PoCには、データベース情報および対応するWordPressユーザー情報を調査するための機能が含まれています。
---
## 4. アプリケーション状態の操作
このチェーンは、データベース制御の結果を使用して、WordPressアプリケーションオブジェクトおよび後続の処理に影響を与えます。
これにより、権限昇格段階に必要なプリミティブが提供されます。
---
## 5. チェンジセットの昇格
このチェーンは、WordPressのチェンジセット処理を利用して、管理者の実行コンテキストを確立します。
捏造された `customize_changeset` オブジェクトは、権限昇格シーケンスに参加できます。
---
## 6. フックの再エントリ
このチェーンは、アプリケーションのリクエストライフサイクルを通じてWordPressのリクエスト処理に再エントリします。
これにより、後続のAPI処理が昇格したコンテキストで実行できるようになります。
---
## 7. 管理者アカウントの作成
調査用PoCは、認証前の管理者作成段階を実装します。
これは、Mode 3がセキュリティ検証に役立つ主な理由です。つまり、Webシェル/RCE段階に進まずに、権限昇格の影響を実証します。
---
## 8. 認証済みコード実行
Mode 4は、調査チェーンを管理者作成の先、認証済みコード実行段階まで拡張します。
この段階は、隔離されたラボまたは明示的に許可された評価でのみ使用する必要があります。
---
# 影響を受けるバージョン
## 完全な認証前チェーン
| WordPressバージョン | 状態 |
| ------------------- | -------------- |
| 6.9.0 – 6.9.4 | **影響あり** |
| 7.0.0 – 7.0.1 | **影響あり** |
| 6.9.5 | **修正済み** |
| 7.0.2+ | **修正済み** |
PoCは、文書化された完全チェーンが影響を受けるバージョンとして `6.9.0–6.9.4` および `7.0.0–7.0.1` を特定しています。
## SQLインジェクション
SQLインジェクションコンポーネントは、完全なチェーンとは異なる修正バージョンの境界を持ちます。
調査実装は、`6.8.6` をSQLインジェクションの修正版として特定しています。
完全な認証前チェーンは、さらに脆弱なRESTバッチ動作に依存します。
本番環境の判断を行う前に、必ず関連する公式セキュリティアドバイザリで影響を受けるバージョンと修正済みバージョンを確認してください。
---
# 前提条件
PoCは、完全なチェーンについて次の条件を文書化しています。
* WordPress REST APIに到達可能であること
* Redis/Memcachedオブジェクトキャッシュがないこと
* 公開済みの投稿が少なくとも1つあること
その他のデプロイメントコンポーネントが再現性に影響する場合があります。
* リバースプロキシ
* Webアプリケーションファイアウォール
* REST API制限
* セキュリティプラグイン
* オブジェクトキャッシング
* HTTPフィルタリング
* ホスティング設定
バージョン範囲に一致するWordPressインストールであっても、すべての環境で完全なチェーンが機能するとは限りません。
---
# 機能
`wp2shell` は、次の調査機能を含む対話型メニューを提供します。```text
[1] Fingerprint + confirm vulnerability (non-destructive)
[2] Blind SQL extraction (fingerprint / dump users)
[3] Pre-Auth Admin creation
[4] Full RCE chain → admin creation + webshell
[5] Facilitated sink SQLi (WordPress 6.8.x / custom)
[6] Threaded scan over URL list
[7] Transport settings (proxy, TLS, timeout, delay)
[8] Change target URL
[0] Quit
```
---
# インタラクティブメニュー
メインメニューは、次の両方をサポートするように設計されています。
* 認可された単一のWordPressインストールのテスト
* 認可されたWordPress URLリストのテスト
したがって、このワークフローは、個別のリサーチ対象と、より大規模な認可された評価データセットの両方に使用できます。
---
# 推奨モード — モード3
## モード3を選ぶ理由
脆弱性調査では、**ウェブシェルを展開せずにセキュリティへの影響を示すことが目的の場合、モード3が推奨モードです**。
モード3は:```text
Pre-Auth Admin Creation
```
PoCはこのステージを次のように説明しています:```text
Unauthenticated UNION SQLi → new WordPress administrator
```
そして、それを完全なwebshell/RCEステージと明確に区別している:```text
No password cracking.
No webshell.
Non-destructive admin only.
```
これにより、Mode 3は、脆弱性チェーンが管理者レベルの侵害に到達することを
証明したいが追加のコード実行段階は回避したい場合に、
特に有用です。
---
# Mode 3 — 認証前の管理者作成
Mode 3を選択すると、以下が開きます:```text
────────────────────────────────────────────────────────────
CREATE ADMIN — Pre-Auth Admin RCE Chain
────────────────────────────────────────────────────────────
⚠ Unauthenticated UNION SQLi → new WordPress administrator.
⚠ No password cracking. No webshell. Non-destructive admin only.
```
その後、PoCはいくつかの環境および出力オプションを尋ねます。