
会員制サイトの構築や、有料会員向けのコンテンツ制限を行うプラグイン「s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions」において、セキュリティ上の問題が確認されました。影響を受けるのは、バージョン 260814 までのすべてのバージョンです。
本脆弱性を悪用された場合、WordPressにログインしていない第三者によって、支払いをせずに有料会員の権限を得られたり、特定の設定のサイトではサーバー上で任意のプログラムを実行されたりする可能性があります。
対策として、最新版(260917 以降)への更新を推奨します。
脆弱性詳細
本脆弱性は、決済サービス「PayPal Checkout」と連携した購入ボタンを公開しているサイトに存在します。
攻撃には、そのサイトで一度 PayPal Checkout の購入手続きを行う必要があります。
想定される被害
この脆弱性が悪用された場合、以下のような被害が想定されます。
会員権限の不正な取得・変更
- 支払いをせずに有料会員として登録したり、自分のアカウントを上位の会員レベルへ変更したりされるおそれがあります。
- 管理者以外の登録ユーザーについて、会員レベルや契約情報を書き換えられるおそれがあります。
サーバー上での任意のプログラムの実行
リモートコード実行とは、外部から送り込んだプログラムをサーバー上で動かされる攻撃です。
- サイトの改ざんや、データベースに保存された会員情報の漏えいにつながるおそれがあります。
被害発生の条件
- 会員権限の不正な取得・変更
- PayPal Checkout の購入ボタンをサイトで公開している
- 任意のプログラムの実行(上記に加えて)
- 「Signup Tracking Codes(会員登録時のトラッキングコード)」に、購入者の名前やメールアドレスなどを差し込む置き換えコード(%%first_name%% など)を設定している
技術的な詳細
決済通知の確認の仕組み
- s2Member は、決済完了の通知を受け取ると、会員レベルの付与などを行います。
- 通常はその通知が本物かどうかをPayPalに問い合わせて確認しますが、s2Member自身が内部で送る通知については、サイト固有の「検証キー」が添えられていれば確認を省略する仕組みになっています。
- この検証キーはサイトごとに固定された値で、有効期限もありません。
問題点1:検証キーが購入者に渡っていた
- PayPal Checkout での購入手続きが完了すると、サンクスページへ移動するためのデータが購入者のブラウザへ送られます。このデータに検証キーがそのまま含まれていました。
- キーを入手した第三者は、支払いの有無や会員レベル、対象ユーザーなどを自由に指定した「偽の決済通知」を送ることができ、サイトはそれを本物として処理していました。
- 偽の決済通知で、管理者アカウントの権限が変更されることはありません。
問題点2:名前の欄に書き込んだプログラムが実行された
- 「Signup Tracking Codes」は、広告の成果計測などのために会員登録後のページへ表示するコードで、PHPプログラムとして実行される仕様になっていました。
- サンクスページの処理では、通知に含まれる名前などの値を、プログラムの開始を示す記号(PHPタグ)を取り除かずに、このトラッキングコードへ差し込んでいました。
- そのため、偽の決済通知の名前の欄などにPHPプログラムを書き込むと、サーバー上で実行される状態になっていました。
悪用の大まかな流れ
- PayPal Checkout の購入手続きを利用して、検証キーを入手する
- そのキーを付けた偽の決済通知をサイトへ送る
- 会員権限が書き換えられる。条件がそろっている場合は、名前の欄などに仕込んだプログラムが実行される
(模倣防止のため詳細は伏せています)
対策版での修正
- 260829:購入者のブラウザへ検証キーを送らないよう変更し、その取引の内容だけに有効で1時間で期限が切れる署名(改ざんを検知するための値)に置き換え
- 260917:トラッキングコードや通知メールをPHPプログラムとして実行する処理そのものを廃止
更新後も残る注意点
- 検証キーの値そのものは更新しても変わらないため、更新前にキーを入手されていた場合、偽の決済通知による会員権限の変更は更新後も可能です。
- 260829 では、入手済みのキーを使ったプログラム実行も防げません。プログラム実行まで防げるのは 260917 以降です。
脆弱性の種類
推奨対応事項
該当バージョンのプラグインをご利用の場合、以下の対応を強く推奨します。
- プラグインの更新
- 速やかに、プラグインを最新版(260917 以降)へ更新してください。
- 260917 以降では、トラッキングコードに書いたPHPプログラムは動作しなくなります。PHPを使っていた場合は、更新後に成果計測などが正しく動いているか確認してください。
- すぐに更新できない場合は、更新までの間、PayPal Checkout の購入ボタンを非公開にしてください。
- 検証キーの変更(PayPal Checkout の購入ボタンを公開していた場合)
- 「s2Member」→「General Options」の「Security Encryption Key」を新しい値に変更すると、検証キーも新しい値に変わり、以前のキーは使えなくなります。
- この設定を変更すると、発行済みの登録用リンクや購入手続き途中のデータなども無効になります。購入や登録の少ない時間帯に行ってください。
- 被害確認
- 会員の確認:管理画面の「ユーザー」一覧で、有料の会員レベル(s2Member Level 1 以上)のユーザーを確認してください。PayPalの管理画面の取引履歴に対応する入金がない会員や、身に覚えのない会員レベルの変更がないか照らし合わせます。
- トラッキングコードの確認:「s2Member」→「API / Tracking」の「Signup Tracking Codes」に身に覚えのない記述がないか、また %%first_name%% などの置き換えコードを使っているかを確認してください。置き換えコードを使っていた場合は、下記のログもあわせて確認してください。
- ログの確認(s2Memberのログ機能を有効にしている場合):「s2Member」→「Log Files (Debug)」で、決済関連のログ(「gateway-core-rtn」「gateway-core-ipn」)の名前・メールアドレス・商品名の欄に、「<?php」「<?=」といった文字列が含まれていないか確認してください。
- アクセスログの確認:Webサーバーのアクセスログで、「s2member_paypal_notify」を含むURLへのPOSTリクエストのうち、PayPalや自サイトのサーバー以外から送られたものがないか確認してください。
- セキュリティ対策の強化(任意)
- トラッキングコードを使っていない場合は、設定欄を空のままにしておくと、万一の際の影響を小さくできます。
- WAF(Web Application Firewall:不正な通信を検知・遮断する仕組み)を導入していれば、PHPプログラムを含む通信の遮断に有効です。ただし、偽の決済通知そのものは通常の通信と見分けにくく、WAFですべての攻撃を確実に防げるわけではないため、根本的な対策となるプラグインの更新を優先してください。
⇒ 身に覚えのない有料会員や、不審なログ・設定が確認された場合は、WordPressの専門家への相談を推奨します。
影響を受けるバージョン
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions 260814 までのバージョン
脆弱性情報 (CVE-ID)
CVE-2026-19804
(公開日 2026年9月25日 更新日 2026年9月25日)
脆弱性の深刻度 (CVSS v3)
基本値: 8.8 (重要) [Wordfence]
脆弱性脅威度(EPSS)
CVE-2026-19804 悪用確率 1.04% (上位37%) 2026年10月1日時点
ソフトウェア脆弱性情報の著作権に関する注意事項
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.
「WordPressセキュリティ保守」をご利用のお客様へ

WordPress
s2Member プラグインをご利用中のお客様には、対策バージョンへの更新状況および推奨対応事項について、順次メールにてご案内しております。
本記事の作成について
本記事は、対象プラグインの公開ソースコードおよびバージョン間の差分を解析し、その結果に基づいて作成しています。
解析および文章作成の過程では生成AIを利用し、内容は当社の担当者が確認したうえで公開しています。



