TrustBrain

オンライン予約システムを構築できるプラグイン「Bookly(Online Scheduling and Appointment Booking System)」において、セキュリティ上の問題が確認されました。影響を受けるのは、バージョン 28.2 までのすべてのバージョンです。

本脆弱性を悪用された場合、ログインしていない第三者によって、他の利用者の予約内容を閲覧されたり、支払いが完了していない予約を削除されたりする可能性があります。

対策として、バージョン 28.3 以降への更新を推奨します。

本脆弱性は、予約フォームの予約完了画面を表示する処理と、決済を中止した際に予約を取り消す処理に存在します。

これらの処理を通じて、他の利用者の予約を操作できる状態となっていました。

攻撃が成功した場合、以下のような被害が想定されます。

  • 予約の削除:支払いが完了していない予約(現地払いで未精算のもの、オンライン決済の手続き中のものなど)が削除される可能性があります。削除された予約は、管理画面の予約一覧やカレンダーからも消えます(グループ予約で他の参加者がいる場合は、該当の参加者だけが外れます)。
  • 予約内容の閲覧:予約の日時、サービス名、担当スタッフ名、場所を閲覧される可能性があります。初期設定では、顧客の氏名や連絡先は含まれません。

被害発生の条件

  • プラグインが有効であれば、ログインしていない第三者でも攻撃が可能です。

予約フォームの仕組み

予約フォームは、訪問者ごとに「フォームセッション」(予約の途中経過を一時的に保存する仕組み)を作成します。

予約が完了すると、セッションに記録された注文番号をもとに「注文トークン」(注文ごとに発行される、合言葉のような値)をブラウザへ返します。このトークンは、予約をカレンダーに追加する機能や、決済を中止した際の予約取り消しで、「その注文の持ち主であること」の証明として使われます。

問題点

  • フォームセッションを作成する際、ブラウザから送られた値をそのまま保存していたため、本来はサーバー側だけが記録する「注文番号」を外部から指定できました。
  • 予約完了画面の処理は、その注文番号が同じセッションで作られた注文かどうかを確認せずに、注文トークンを返していました。
  • 注文番号は順番に振られる連番のため、番号を順に指定するだけで、他の利用者の注文トークンを取得できました。
  • 予約の取り消し処理は、注文トークンさえあれば、操作している人が注文者本人かどうかを確認せずに予約を削除していました。

悪用の大まかな流れ

  1. 細工したデータでフォームセッションを作成し、他人の注文番号を紛れ込ませる
  2. 予約完了画面の処理を呼び出し、その注文のトークンを取得する
  3. 取得したトークンを使い、予約内容の取得や予約の取り消しを実行する

(模倣防止のため詳細は伏せています)

対策版での修正

  • フォームセッションの作成時に受け付ける値を、フォームの表示設定などに限定し、注文番号は受け付けないように変更
  • 予約の取り消しを、オンライン決済の手続き中の注文で、かつ同じセッションで作成された注文に限定

該当バージョンのプラグインをご利用の場合、以下の対応を推奨します。

  1. プラグインの更新
    • 速やかに、プラグインを対策バージョン(28.3 以降)へ更新してください。28.3には、本件以外のセキュリティ修正も含まれています。
  2. 被害確認
    • Booklyの操作ログを確認してください。管理画面の「Bookly」→「Diagnostics(診断)」→「Logs」を開き、操作(Action)を「Delete」で絞り込みます。
    • 参照元(Reference)欄に「rollbackOrder」を含む記録が、予約の取り消し処理による削除です。お客様が決済を途中でやめた場合にも同じ記録が残ります。現地払いの予約の削除、心当たりのない削除、短時間に集中した削除がないかを確認してください。
    • 不正な削除が見つかった場合は、該当の記録を選択して「Restore records(記録の復元)」を実行すると、予約を元に戻せる場合があります。なお、ログは初期設定で30日を過ぎると自動で削除されるため、早めに確認してください。
    • サーバーのアクセスログで、「admin-ajax.php」への同じ送信元からの短時間の大量アクセスや、「bookly_add_to_calendar」を含むアクセスの集中がないか確認してください。
  3. セキュリティ対策の強化(任意)
    • WAF(Web Application Firewall:不正な通信を検知・遮断する仕組み)や、同じ送信元からの大量のリクエストを制限する仕組みを導入していれば、注文番号を順に試す攻撃の抑止に役立ちます。ただし、すべての攻撃を確実に防げるわけではないため、プラグインの更新を優先してください。

⇒ 不正な予約の削除が確認された場合は、WordPressの専門家への相談を推奨します。

Bookly 28.2 までのバージョン

CVE-2026-93399
(公開日 2026年9月25日 更新日 2026年9月26日)

基本値: 9.1 (緊急)   [Wordfence]

CVE-2026-93399 悪用確率 0.37% (上位72%) 2026年9月29日時点 

(今後30日以内に悪用される確率 )

ソフトウェア脆弱性情報の著作権に関する注意事項

This record contains material that is subject to copyright.

Copyright 2012-2026 Defiant Inc.

License: Defiant hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute this software vulnerability information. Any copy of the software vulnerability information you make for such purposes is authorized provided that you include a hyperlink to this vulnerability record and reproduce Defiant’s copyright designation and this license in any such copy. Read more.

Copyright 1999-2026 The MITRE Corporation

License: CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE’s copyright designation and this license in any such copy. Read more.

「Support」、「Technical」、「Customer」、「Service」の文字 と 技術的なWordPress顧客サポート

WordPress運用保守

さらに詳しく

Bookly プラグインをご利用中のお客様には、対策バージョンへの更新状況および推奨対応事項について、順次メールにてご案内しております。

WordPress プラグイン Online Scheduling and Appointment Booking System – Bookly 情報 (2026年10月2日 取得)

最新版 バージョン 28.4
対象 WordPress バージョン 3.7 またはそれ以降
検証済み最新バージョン : 7.1.2
有効インストール数 60,000+
関連 ページ プラグインページ ホームページ

本記事は、対象プラグインの公開ソースコードおよびバージョン間の差分を解析し、その結果に基づいて作成しています。
解析および文章作成の過程では生成AIを利用し、内容は当社の担当者が確認したうえで公開しています。