Descopeプラグインに認証回避の脆弱性、修正版あり
WordPress用のDescopeプラグインの1.2.0より前の版に、メールアドレスを知られるだけで管理者を含む任意のアカウントのセッションを奪われる脆弱性があります。該当サイトは1.2.0へ更新し、不審な管理者ログインや新規ユーザーがないかも確認してください。
急ぎ度: 至急
CVSS v3が9.8で、認証なしにネットワーク越しで管理者のセッションを得られる脆弱性であり、修正版がすでに公開されているためです。
関係があるか
Descopeプラグインを入れたWordPressサイトが対象です。会員サイトや社内ポータルなど、WordPressのログインをDescopeと連携させている環境は、とくに影響が大きくなります。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| Descope(WordPressプラグイン) | 1.2.0より前のすべての版 | 1.2.0 |
確かめ方
- 1WordPressの管理画面でプラグインの一覧を開き、Descopeの版が1.2.0未満になっていないか確認する。
- 2WP-CLIが使えるサーバーでは
wp plugin get descope --field=versionで版を確認する。 - 3複数のWordPressサイトを運用している場合は、サイトごとにプラグインの有無と版を調べる。制作会社や外部委託先が管理しているサイトも対象に含める。
何が起きたか
Descopeプラグインの1.2.0より前の版では、ログインしていない第三者が、サイトに登録済みのアカウントのメールアドレスを使い、そのアカウントとしてログインした状態を得られます。管理者アカウントも例外ではありません。
原因は、ログイン時にプラグインが受け取る認証トークンを検証せず、空でなければそのまま受け入れてWordPressのセッションを作ってしまう点にあります。受付で社員証の中身を見ずに、何かを提示しただけで通してしまう状態に近いものです。分類はCWE-287(不適切な認証)で、CVSS v3は9.8です。
公表から日が浅く、修正版もすでにあります。該当サイトは今日中に更新するのが妥当でしょう。
攻撃の流れ
-
1
宛先の特定
攻撃者が、乗っ取りたいアカウントのメールアドレスを用意する。
-
2
検証なしの受理
プラグインが、ログインの要求に付いたトークンの正しさを確かめずに受け入れる。
-
3
セッション発行
WordPressが、そのアカウントとして通用するセッションを作る。
-
4
管理者として操作
攻撃者が、乗っ取ったアカウントの権限でサイトを操作する。
どう悪用されるか
ネットワークから到達できるWordPressサイトであれば、攻撃にログインは要りません。利用者に何かを操作させる必要もありません。攻撃者が知っている必要があるのは、乗っ取りたい既存アカウントのメールアドレスです。
成功すると、そのアカウントの権限でサイトを操作されます。管理者なら、設定の変更、投稿や固定ページの書き換え、ユーザー管理などが自由にできてしまいます。CVSSでも機密性・完全性・可用性のすべてが高と評価されています。
今すぐやること
-
1
Descopeプラグインを1.2.0に更新する
管理画面のプラグイン画面から更新します。本番サイトを直接触れない場合は、検証環境で動作を確かめたうえで、早い時期に本番へ反映します。更新後は版が1.2.0になっていることを確認します。
wp plugin get descope --field=version -
2
管理者アカウントとログインの履歴を調べる
心当たりのない管理者の追加、権限の変更、見覚えのない時間帯の管理者ログイン、プラグインやテーマの追加・変更がないかを見ます。サーバーのアクセスログも、更新前の期間を中心に確認します。
-
3
侵害の疑いがあれば認証情報を入れ替える
不審な操作が見つかった場合は、管理者のパスワードを変更し、有効なセッションを破棄します。あわせて、追加された不審なユーザーやファイルを調べ、必要ならバックアップから復旧します。
-
4
使っていないDescopeプラグインは削除する
ログイン連携を使っていないのに入れたままのサイトは、無効化にとどめず削除します。
すぐ更新できないとき
すぐに更新できないときは、Descopeプラグインを無効化して更新できるまでのつなぎにします。ログインをDescope経由に一本化しているサイトでは、無効化すると管理者も入れなくなるおそれがあります。通常のログイン手段が使えることを先に確認してください。
背景
Descopeは認証を外部のサービスに任せるためのプラグインです。外部で本人確認を済ませたことを示すトークンを受け取り、サイト側でWordPressのセッションを作ります。この設計では、受け取ったトークンが本物かをサイト側で検証する工程が、安全性のほぼすべてを担っています。今回の脆弱性は、その検証が抜けていた点にあります。
WPScanの該当ページには、SSOログイン用のプラグインやEC用プラグインなど、認証の回避やアカウント乗っ取りに分類された別の脆弱性も関連項目として並んでいます。ログインを外部サービスと連携させるプラグインでは、メールアドレスの照合やトークンの検証といった入口の処理が、WordPress側の標準のログインより弱くなっていないかを、あらためて確認する価値があります。
よくある質問
Q.Descopeのサービス側(クラウド)も更新が必要ですか。
まだ分かっていないこと
- 実際の攻撃で悪用されたかどうかや、攻撃を見分けるための具体的な痕跡は公表されていません。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
影響パッケージ
| パッケージ | 影響を受ける版 → 修正版 | |
|---|---|---|
| CVE の記録Descope |
1.2.0 未満→ 1.2.0 |
1.2.0 |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
The Descope WordPress plugin before 1.2.0 does not validate the authentication token it receives before creating a WordPress session, accepting any non-empty token, so an unauthenticated attacker can obtain a session for any existing account, including an administrator, by supplying that account's email address.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- web contact@wpscan.com
- web nvd.nist.gov
- web wpscan.com
- web github.com