WordPressプラグイン「Rox Appointment Booking」に権限昇格の脆弱性(CVE-2026-104012)

CVSS 8.8 HIGH 未ログインで悪用可能

対象プラグイン Rox Appointment Booking (Rox Appointment Booking – Event, Calendar & Appointment Scheduling)
有効インストール約 2,000 件
影響バージョン1.3.1 以下
修正版1.3.2
CVECVE-2026-104012
種類権限昇格(Improper Privilege Management)
悪用される確率(EPSS)0.28%(全脆弱性の上位 79%)
公表2026年10月31日 当サイト掲載: 2026年11月2日 12:21

何が起きるか

ログインしていない第三者が予約フォームから細工した顧客情報を登録できます。管理者がその顧客情報を保存すると、管理者アカウントのメールアドレスが書き換えられ、アカウントを乗っ取られるおそれがあります。

想定される被害と条件

  • 管理者アカウントのメールアドレスが攻撃者のものに書き換えられる
  • 書き換えられたメールアドレス宛のパスワード再設定で、管理者アカウントが乗っ取られる
  • 乗っ取られた場合、サイトの改ざん、不正なユーザーの追加、情報の持ち出しなどサイト全体に被害が及ぶ
  • 被害が起きる条件は、管理者が細工された顧客情報を開いて「Update Customer」で保存すること
  • ユーザーIDが1の初期管理者など、IDを推測されやすい管理者が特に狙われやすい

今日やること

Rox Appointment Booking を 1.3.2 以上に更新し、すぐに更新できない場合はプラグインの停止・削除を検討してください。

すぐに更新できない場合

更新するまでは、プラグインの顧客管理画面で顧客情報を開いて保存(Update Customer)する操作を控えてください。可能であれば公開予約機能を一時的に止めるか、WAFで予約用のREST API(/rox-appointment-booking/v1/public/booking)への外部からのアクセスを制限してください。

更新後に確認すること

  • 管理画面「ユーザー」で、各管理者のメールアドレスが見覚えのないものに変わっていないか確認する
  • 「ユーザー」一覧に、身に覚えのない管理者アカウントが追加されていないか確認する
  • プラグインの顧客一覧に、不審なメールアドレスや名前の顧客が最近登録されていないか確認し、該当があれば保存せずに削除する
  • 管理者宛てにパスワード再設定やメールアドレス変更の通知が届いていないか確認し、不審な点があればパスワードを変更する

不審な投稿・ユーザー・ファイルが見つかった場合は、専門家への相談をおすすめします。

Rox Appointment Booking の現在の情報 (WordPress.org、2026-11-02 取得)

最新版1.3.2 修正版を含む
対応 WordPress6.5 以上(検証済み 7.1.4)
最終更新2026-10-18 10:06am GMT
有効インストール2,000+
リンクWordPress.org のページ 公式サイト
このプラグイン、自分のサイトにも入っている? URL を入れるだけの無料チェック →

原文(Wordfence Intelligence)

The Rox Appointment Booking – Appointment Booking Scheduling Solution plugin for WordPress is vulnerable to Privilege Escalation via Mass Assignment in all versions up to, and including, 1.3.1 This is due to the public `/rox-appointment-booking/v1/public/booking` REST endpoint performing mass-assignment of the raw request body into a new customer row while `CustomerModel::$fillable` includes the internal `wp_user_id` column, allowing an unauthenticated attacker to persist an arbitrary WordPress user ID alongside an attacker-controlled email address with no authorization check. When an administrator subsequently opens the poisoned customer record and clicks Update Customer, `SaveCustomer::handleRequest()` passes the stored `wp_user_id` and attacker-supplied email to `wp_update_user()` — succeeding because `LinkedAccount::canChange()` unconditionally returns true when the acting user holds the `edit_users` capability — thereby overwriting the targeted administrator’s email address and enabling full account takeover via a standard WordPress password-reset request. Successful exploitation requires an administrator to open and save the poisoned record, and the attacker must know or guess a valid administrator user ID (such as the default user ID 1).

参考リンク

本ページの作成について: 上記の出典データをもとに、「何が起きるか」「今日やること」「更新後に確認すること」などの日本語解説は生成 AI が作成し、サイトの主治医が随時確認しています。誤りに気づかれた場合はお問い合わせください。

最近公表された深刻度の高い脆弱性

脆弱性一覧 →

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次