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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-16540-SimplyScheduleAppointments — CVE-2026-16540 — Simply Schedule Appointments < 1.6.12.6 未認証の予約データ開示および一括削除 | Kitploit
ツール/GitHubGitHub/huseyn0vs/cve-2026-16540-simplyscheduleappointments
脆弱性分析ウェブアプリケーション悪用データ流出情報収集ペネトレーションテスト設定ミス
GitHubhuseyn0vs/cve-2026-16540-simplyscheduleappointments

CVE-2026-16540-SimplyScheduleAppointments

CVE-2026-16540 — Simply Schedule Appointments < 1.6.12.6 未認証の予約データ開示および一括削除

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る
129日前未レビュー

CVE-2026-16540 — Simply Schedule Appointments < 1.6.12.6

未認証の予約データ開示と purge エンドポイントによる一括削除

フィールド詳細
CVECVE-2026-16540
プラグインSimply Schedule Appointments
影響を受けるバージョン< 1.6.12.6
修正バージョン1.6.12.6
アクティブインストール数~70,000
CVSS 3.16.5 (中) — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
CWECWE-863 (不適切な認可)
OWASPA5: アクセス制御の不備
WPVDBc3829294-c388-4151-9e25-a3eac7b1f1c6
研究者Suleyman Huseynov (@huseyn0vs__)
公開日2026-07-22

概要

Simply Schedule Appointments の GET /wp-json/ssa/v1/appointments/purge REST エンドポイントは、単一の予約の所有権を証明する id_token を検証する認可チェック (get_items_permissions_check) を適用しています。しかし、ハンドラー (purge_appointments()) は、トークンがどの予約に属しているかを完全に無視し、代わりに指定された条件に一致するサイト全体のすべての予約に対して操作を行います。

認証されていない攻撃者は、公開予約フォームから任意の単一予約を予約すると id_token を受け取ります。このトークンを使用して、攻撃者は以下のことが可能です:

  1. サイト全体のすべての予約の個人データを取得する(名前、メールアドレス、電話番号、予約詳細)
  2. 過去、キャンセル済み、または将来のすべての予約を恒久的に削除する(削除機能はプレミアムエディションのみ)

削除はコミット済みトランザクション内で6つの依存データベーステーブルにカスケードされ、標準の元に戻す機能はありません。


根本原因分析

ファイル: includes/class-appointment-model.php

誤ったリソースへの認可 (CWE-863)

権限ゲートとハンドラーは、完全に異なるスコープで動作します:

root@kitploit:~
// Route registration
register_rest_route( $namespace, '/' . $base . '/purge', array(
    array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => array( $this, 'purge_appointments' ),
        'permission_callback' => array( $this, 'get_items_permissions_check' ),
    ),
) );

権限チェック — id_token を介して1つの予約の所有権を検証します:

root@kitploit:~
public function get_items_permissions_check( $request ) {
    // ...
    if ( true === $this->id_token_permissions_check( $request ) ) {
        return true;  // grants access if caller proves ownership of one appointment
    }
    // ...
}

ハンドラー — トークンの予約を無視し、サイト全体に対して操作します:

root@kitploit:~
public function purge_appointments( WP_REST_Request $request ) {
    $params = $request->get_params();

    // No customer_id or appointment_id scoping — deletes ALL matching appointments
    if ( isset( $params['purge_past_appointments'] ) && 'true' === $params['purge_past_appointments'] ) {
        $conditions[] = $wpdb->prepare( 'end_date < %s', $date_modified_max->format( 'Y-m-d' ) );
    }

    $sql = 'SELECT * FROM ' . $this->get_table_name()
         . ' WHERE ' . implode( ' OR ', $conditions )
         . ' ORDER BY id ASC LIMIT 5000';

    $list = $wpdb->get_results( $sql, ARRAY_A );
    // Cascade-deletes across 6 tables in committed transactions
}

id_token は、単一の予約の id と date_created から導出される HMAC-MD5 です。このトークンを保持していることは、呼び出し元が特定の1つの予約を予約したことのみを証明し、サイト全体の権限を一切付与するものではありません。


攻撃チェーン

root@kitploit:~
1. Attacker visits the booking page and books any free appointment
   → receives confirmation email containing: appointment_id + id_token

2. GET /wp-json/ssa/v1/appointments/purge
     ?id=<appointment_id>
     &token=<id_token>
     &purge_past_appointments=true

3. Permission check passes (valid token for attacker's own appointment)

4. Handler selects ALL past appointments site-wide → returns PII in response
   → permanently deletes them across 6 tables (on premium editions)

概念実証 (PoC)

PoC は 2026-08-05 に公開予定です(協調開示エンバーゴに従います)。

エンバーゴ期間終了後は poc/ ディレクトリを参照してください。


影響

シナリオ結果
データ開示すべての顧客の名前、メールアドレス、電話番号、予約詳細
一括削除(プレミアム)6つのテーブルにわたって、すべての過去・将来の予約が恒久的に破壊される
復旧手段なし完全なデータベースバックアップの復元が必要

開示タイムライン

日付イベント
2026-07-10脆弱性を発見
2026-07-10WPScan に提出
2026-07-22CVE-2026-16540 割り当て
2026-07-22WPScan で公開開示

参考情報

  • WPScan アドバイザリ
  • WordPress プラグインページ
  • CWE-863: 不適切な認可
  • OWASP A5: アクセス制御の不備
ツールをダウンロード
2026-08-05PoC 公開