WordPress に会員登録とログイン、プロフィールページの機能を足すプラグイン Ultimate Member に、ログインしていない第三者が登録フォームから管理者相当の権限を取れる脆弱性が、WPScan から 8/26 に公開されました。有効インストールは 20 万です。
https://wpscan.com/vulnerability/3cdc8700-165a-4787-a3d0-b0914865b07b/
修正版の 2.13.0 は 8/24 に出ました。それ以降に更新していれば、今回の入口はすでに塞がっています。WPScan は悪用の手順(PoC)の公開を 9/26 まで止めているので、古い版で止まっているサイトにとっての期限はその日です。
WPScan の advisory とベンダーの changelog をもとに、やることだけ整理しました。
取るべき対応
- プラグイン一覧で Ultimate Member のバージョンを見る。2.13.0 なら対応済みです。8/28 時点の現行版でもあります
- 2.12.1 以下なら 2.13.0 に上げる。changelog によると、日付と時刻の入力欄がブラウザー標準の入力に変わり、テーマ側にコピーしたテンプレート(gdpr-register.php と profile.php)も更新対象です。上げたあとはキャッシュを作り直し、登録フォームとプロフィール画面を一度開いて見ておく
- すぐ上げられないなら、登録フォームから役割の選択欄(Roles (Dropdown) / Roles (Radio))を外す。advisory に回避策の記載はありませんが、入口として挙げられているのはこの欄です。外している間の登録者には、フォーム設定の既定の役割が付きます
- 2.12.1 以下を、役割の選択欄がある状態で使っていた期間があるなら、ユーザー一覧に見覚えのない管理者がいないか見ておく。念のためです
起こったこと
ログインしていない第三者が、Ultimate Member の登録フォームで自分に任意の権限を付け、管理者相当としてサイトに入れる状態でした(CVE-2026-19423、CVSS 8.1)。既存のアカウントもパスワードも要りません。
同じ欄については 7 月にも別の権限昇格(CVE-2026-12251)が公開され、2.12.1 で直りました。つまり 2.12.0 以下には、この欄の入口が 2 つ開いています。
原因
登録フォームに役割の選択欄があると、送られてきた役割は、その欄で許可した一覧と照合されます。ところが、その一覧を読み取れなかったときは照合が抜け、サイトに登録されている役割名かどうかだけで通していました。許可一覧に無い値がそのまま通り、管理者相当の権限が付く、というのが advisory の説明です。
対象者
対象は 2.6.7 から 2.12.1 までで、Ultimate Member の登録フォームに役割の選択欄を置いているサイトです。advisory が入口として挙げるのはこの欄で、置いていないフォームにはこの入口がありません。Ultimate Member > Forms から登録フォームを開き、欄の一覧に Roles (Dropdown) と Roles (Radio) のどちらも無ければ外れます。
一覧を読み取れなくなる条件は advisory に書かれておらず、PoC の公開も 9/26 まで止まっています。役割の選択欄がある 2.12.1 以下のサイトは、自分が条件に当たるかを外から判別できないので、欄がある時点で上げる側に入れておくのが無難です。Ultimate Member の登録フォーム経由の権限昇格は、2023 年 6 月に実際の攻撃が観測されています。今回の対象範囲の下限 2.6.7 は、ちょうどそのときの修正版です。
条件から外れたサイトも、上げる先は同じ 2.13.0 です。changelog にはこのほかに、承認待ちコメントの本文をログインなしで読める問題と、ログイン済みユーザーによる XSS の修正も入っています。
