本文へ移動
English version →
重大 9.8 急ぎ度: 至急

Basel Post Typesで認証回避の脆弱性、修正版は要確認

Basel Post Types 1.18以下に、認証なしで管理者を含む任意のユーザーとしてログインされる脆弱性があります。WooCommerceとソーシャルログインを併用するサイトは、版と修正版の有無、侵害の跡を確認してください。

CVE-2026-89324 公開 更新 執筆・監修: 佐々木 航 人が監修しながらAIを活用して執筆
画像は生成 AI で作成したイメージです

急ぎ度: 至急

CVSS v3が9.8で、認証なしにネットワーク経由で管理者を含む任意のユーザーになりすませる脆弱性であり、条件に当てはまるサイトでは公開当日から対応が必要です。

関係があるか

WordPressでBasel Post Types(XTemos)を使い、WooCommerceを有効にしたうえで、Facebook・Google・VKontakteのいずれかのソーシャルログインを設定しているサイトが影響を受けます。ECサイトを運営している企業が主な対象です。

製品影響を受ける版修正版
Basel Post Types(XTemos、WordPress用プラグイン) 1.18以下のすべての版 修正版の有無と版番号は、XTemosとWordfenceの告知で確認してください。

確かめ方

  1. 1WordPressの管理画面でプラグイン一覧を開き、Basel Post Typesが入っているか、版が1.18以下かを確認します。
  2. 2WooCommerceが有効になっているかを確認します。
  3. 3Baselのテーマ設定で、Facebook・Google・VKontakteのログインにapp_idとapp_secretが入力されているかを確認します。1つでも入力されていれば、悪用の前提がそろっています。
  4. 4WP-CLIを使える環境なら、サーバー上で次のコマンドを実行すると、プラグインの版を一覧で確認できます。

何が起きたか

WordPress用のプラグインBasel Post Typesに、ログイン情報を知らない第三者が、既存のユーザーになりすましてログインできる脆弱性が見つかりました。管理者アカウントも対象です。1.18以下のすべての版が影響を受けます。

原因は、ソーシャルログインの応答を確かめる署名の鍵にあります。本来はサイトごとに異なるSECURE_AUTH_SALTを使うはずですが、その存在を調べるコードの書き間違い(引用符の欠落)で、確認が常に失敗します。その結果、テーマのソースコードに書かれた固定のsaltに切り替わってしまいます。この固定値は誰でも読めるため、署名つきの偽のログイン応答を外部で作れる状態です。CWEの分類はCWE-287(不適切な認証)です。

脆弱性は2026年11月10日に公開されました。

攻撃の流れ

  1. 1

    固定の鍵を入手

    テーマのソースコードに書かれた、公開されている固定のsaltを手に入れます。

  2. 2

    署名を偽造

    対象ユーザーのメールアドレスをもとに、サイトに接続せずに有効な署名を計算します。

  3. 3

    偽の応答を送信

    ソーシャルログインの応答を装ったリクエストをサイトに送ります。

  4. 4

    ログイン状態を取得

    パスワードの検証を経ずに、認証済みのセッションcookieが発行されます。

公開されている情報をもとにした流れの例です。

どう悪用されるか

認証は不要で、ネットワーク経由で攻撃でき、利用者の操作も要りません。ただし、WooCommerceが有効で、Baselのソーシャルログイン(Facebook・Google・VKontakte)のうち1つ以上に、有効なapp_idとapp_secretが設定されていることが前提です。攻撃者はなりすます相手のメールアドレスを知っている必要があります。

悪用されると、パスワードの確認、多要素認証、アカウントの所有者確認がすべて素通りになります。サイトは偽の応答を正規のログインとして扱い、認証済みのセッションcookieを返します。対象は既存のどのユーザーでもよいので、管理者として入られれば、サイトの設定変更や顧客情報の閲覧にまで及ぶ恐れがあります。

今すぐやること

  1. 1

    自社サイトが条件に当てはまるか確認する

    Basel Post Typesの版、WooCommerceの有効状況、ソーシャルログインの設定の3点を確認します。3点がそろえば至急の対象です。

    wp plugin list | grep -i basel
  2. 2

    修正版の有無を告知で確認して更新する

    XTemosとWordfenceの告知で修正版が案内されているかを確認し、あれば本番に当てる前に検証環境で動作を見たうえで更新します。修正版が確認できないうちは、更新を待たずに回避策を先に実施します。

  3. 3

    回避策を実施する

    修正版を当てられないあいだは、ソーシャルログインの設定を外します。手順は回避策に書いたとおりです。

  4. 4

    侵害の跡を調べる

    管理者を含むユーザー一覧に見覚えのないアカウントがないか、ユーザーのメールアドレスやロールが勝手に変わっていないかを確認します。アクセスログでは、opauthを含むクエリ付きのリクエストが不審な送信元から来ていないかを見ます。

  5. 5

    疑わしい痕跡があれば認証情報を入れ替える

    不審なログインや変更が見つかったら、該当ユーザーのパスワード変更と、発行済みセッションの無効化を行います。

修正版がないあいだのつなぎ

Baselのテーマ設定で、Facebook・Google・VKontakteのソーシャルログインを無効にするか、app_idとapp_secretを削除します。悪用にはこれらの設定が必要なので、前提を外すことになります。設定変更後は、通常のログインと会員登録が問題なく動くことを確認してください。ソーシャルログインを使い続ける必要があるサイトは、修正版が出るまで、そのつなぎとして停止を検討します。SECURE_AUTH_SALTの値を変えても、この脆弱性の回避にはなりません。

背景

Basel Post Typesは、ECテーマBaselを使うWordPressサイトで動くプラグインです。ソーシャルログインでは、外部サービスから返ってきた応答を、店側が署名を検証して信頼します。署名の鍵が漏れていれば、応答は誰にでも作れてしまいます。

今回の脆弱性に固有なのは、鍵が漏れる経路が設定ミスではなく、プラグイン自身のコードの書き間違いである点です。SECURE_AUTH_SALTはWordPressがサイトごとに持つ値で、本来は予測できないはずでした。ところが、存在確認の記述ミスで常に固定の予備値に切り替わり、その予備値がテーマのソースコードに載っていました。サイト側でsaltを入れ替えても効果がないのはそのためです。

よくある質問

Q.SECURE_AUTH_SALTを新しい値に変えれば防げますか。
A.防げません。確認処理が常に失敗するため、サイト固有の値があっても使われず、固定の予備値が使われ続けます。回避策か修正版が必要です。
Q.管理者以外のアカウントも狙われますか。
A.狙われます。既存のWordPressユーザーであれば誰でもなりすましの対象になり、一般の顧客アカウントも含まれます。顧客の注文履歴や登録情報を見られる恐れがあるので、点検は管理者だけでなく一般ユーザーも対象にしてください。

この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。

影響パッケージ

パッケージ影響を受ける版 → 修正版
XTemosBasel Post Types
1.18 以前→ 記載なし

この記録には修正版の版が載っていません。修正版の有無と版は、本文か参照URLのベンダーの勧告で確かめてください。

原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。

The Basel Post Types plugin for WordPress is vulnerable to Authentication Bypass in all versions up to, and including, 1.18. The vulnerability exists because a missing-quotes coding error in the defined() call for SECURE_AUTH_SALT inside BASEL_Auth::get_config() causes PHP to evaluate the constant's value rather than its name, making the check always fail and permanently falling back to the static hardcoded salt 2NlBUibcszrVtNmDnxqDbwCOpLWq91eatIz6O1O that is publicly visible in the theme source code; because this salt is static and known, an attacker can compute a valid Opauth signature entirely offline and submit a forged ?opauth callback to the unauthenticated init hook endpoint processed by register_or_login. This makes it possible for unauthenticated attackers to authenticate as any existing WordPress user, including administrators, by forging a callback tied to a known target account email address — bypassing all password verification, multi-factor authentication, and ownership checks, and receiving a fully authenticated session cookie via wc_set_customer_auth_cookie(). Exploitation requires WooCommerce to be active and at least one Basel social-login provider (Facebook, Google, or VKontakte) to be configured with a valid app_id and app_secret in the theme settings.

出典: CVE.org (CVE Program・cvelistV5) NVD

参照URL

当サイトでは、アクセス解析と広告の効果測定のために Cookie を使います。株式会社Game のサイト共通の設定です。 詳しく