payever決済プラグインに認証不要でコード実行の脆弱性
WordPressのWooCommerce用決済プラグインpayeverに、ログインなしでサーバー上のコードを実行されるおそれのある脆弱性が公表されました。ECサイトで使っていれば、版を確認して修正版の有無を調べ、なければ停止を検討してください。
急ぎ度: 至急
CVSS v3は9.8で、ネットワーク経由・認証不要でコード実行まで進められる脆弱性ですが、修正版の有無は公式の告知で確認する必要があります。
関係があるか
WordPressとWooCommerceでECサイトを運営し、payeverの決済プラグインを入れている組織が対象です。入れているだけで停止中のサイトも、削除するまでは確認の対象に含めてください。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| payever Checkout-Composable Payment Gateway(payever-WooCommerce Gateway) | 4.8.0以下 | 修正版の版番号は確認できていません。WordPressのプラグインページかWordfenceの脆弱性情報で確認してください |
確かめ方
- 1WordPressの管理画面でプラグイン一覧を開き、payeverの名前が付いたプラグインの有無と版を見ます。
- 2WP-CLIが使える環境では、
wp plugin get payever-woocommerce-gateway --fields=name,version,statusで版と状態を確認できます。 - 3複数のサイトを預かる運用では、サイトごとにプラグイン一覧を洗い出します。ステージング環境や休眠中のサイトも含めます。
何が起きたか
payeverのWooCommerce用決済プラグインに、ログイン不要でファイルをサーバーに置かれ、そのままサーバー上でコードを実行されるおそれのある脆弱性が見つかりました。CVEの公表は2026年11月7日です。
プラグインには、payeverのサービスとの同期に使う3つのWooCommerce APIコールバック(payever_set_sandbox_api_keys、payever_toggle_subscription、payever_synchronization_incoming)があります。この3つに認証も権限チェックもnonceによる確認もありません。さらに、画像を取り込むupload_image()が、遠隔から取得したファイルを公開のuploadsディレクトリへ書き込みます。しかも、書き込むときのファイル名は攻撃者が指定でき、ファイルの種類の検証はその書き込みのあとに行われます。弱点の分類はCWE-434(危険な種類のファイルの無制限アップロード)です。
説明には、CWE-862(認可の欠如)とCWE-798(ハードコードされた認証情報)にあたる問題も挙がっています。ハードコードされた認証情報を使ってプラグイン側の識別情報を上書きする部分は、単独でも悪用できるとされています。
攻撃の流れ
-
1
認証なしで呼出し
ログインしていない外部の相手が、公開されたコールバックにリクエストを送ります。
-
2
外部ファイル取得
プラグインが遠隔のファイルを取得し、公開のuploadsディレクトリへ書き込みます。
-
3
検証が後回し
種類の検証より先に書き込まれるため、実行可能なPHPファイルが残るおそれがあります。
-
4
コード実行
置かれたPHPが実行され、サイトとサーバーを操作されます。
どう悪用されるか
悪用にログインは要りません。ネットワーク経由で届く場所にサイトがあれば、利用者の操作も要らずに成立します。CVSSのベクターはAV:N、AC:L、PR:N、UI:Nで、条件はかなり緩い部類です。
悪用されると、Webサーバーの権限でコードを実行され、機密性・完全性・可用性のすべてに高い影響が出ます。ECサイトでは、注文や顧客の情報、設定ファイルの接続情報、決済連携の鍵などが読み出されたり、サイトが書き換えられたりするおそれがあります。
説明によると、一連の流れのうちトークンを取り戻す部分は、プラグインがpayeverのサービスへ行うvalidateToken()の呼び出しに依存します。一方、ハードコードされた認証情報による識別情報の上書きは、これとは別に悪用できます。
今すぐやること
-
1
導入の有無と版を確認する
本番、ステージング、休眠中のサイトを含めて、payeverのプラグインが入っているかを洗い出します。
wp plugin get payever-woocommerce-gateway --fields=name,version,status -
2
修正版の有無を確認して更新する
WordPressのプラグインページとWordfenceの脆弱性情報で、4.8.0より新しい修正版が出ているかを確認します。出ていれば、バックアップを取ってから更新し、決済のテスト注文まで動作を見ます。
-
3
修正版がなければ停止を検討する
修正版が確認できないうちは、プラグインを無効化するか削除します。決済手段が止まる影響とのバランスは、売上への影響を見て判断します。
-
4
uploadsに不審なPHPがないか調べる
uploadsディレクトリには通常PHPファイルはほとんどありません。見覚えのないPHPファイルがないかを確認し、同じ期間のアクセスログで、プラグインのコールバックへの不審なリクエストも探します。
find wp-content/uploads -type f -name "*.php" -
5
侵害の跡があれば秘密情報を入れ替える
不審なファイルが見つかったら、サイトを隔離して調査します。あわせて、管理者のパスワード、wp-config.phpの認証キーとデータベースのパスワード、payeverのAPIキーを入れ替えます。
修正版がないあいだのつなぎ
すぐに更新できないときは、プラグインを無効化するか削除するのが確実です。止められない場合は、WAFでプラグインのコールバックへの外部からのリクエストを制限します。加えて、uploadsディレクトリ配下でPHPを実行させないようWebサーバーを設定します。これらは被害を狭めるつなぎで、脆弱性そのものは直りません。
背景
payeverのプラグインは、WooCommerceの店舗とpayeverの決済サービスをつなぎます。決済手段の設定、商品や定期購入の情報の同期、注文の連携を受け持つため、サイトの中でも決済まわりの設定や鍵に近い位置にあります。外部のサービスからの通知を受け取るコールバックは、外から呼べる入口になります。入口に認証がないと、サイトの管理者でない相手にも触れてしまいます。
この脆弱性で目を引くのは、ファイルの取得と書き込みが、種類の検証より先に行われる順序です。WordPressのuploadsディレクトリはブラウザーから直接アクセスできる場所にあり、PHPの実行を禁止していない環境では、置かれたPHPがそのまま動く可能性があります。検証が書き込みのあとに回ると、ファイル名を相手に決められる状況と組み合わさって、コード実行に直結します。
よくある質問
Q.WooCommerce本体やWordPress本体を最新にすれば防げますか。
Q.すでに侵害されたかどうかは、何を見れば分かりますか。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 修正版 |
|---|---|---|---|
| payever | payever Checkout – Composable Payment Gateway |
4.8.0 以前 |
記載なし |
この記録には修正版の版が載っていません。修正版の有無と版は、本文か参照URLのベンダーの勧告で確かめてください。
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
The payever – WooCommerce Gateway plugin for WordPress is vulnerable to arbitrary file upload leading to remote code execution in various versions up to, and including, 4.8.0. Three WooCommerce-API callbacks (payever_set_sandbox_api_keys, payever_toggle_subscription, payever_synchronization_incoming) are registered with no authentication, capability check, or nonce, and the upload_image() routine writes a remotely fetched file to the public uploads directory using an attacker-controlled basename() BEFORE validating the file type. This makes it possible for unauthenticated attackers to write an executable PHP file and achieve remote code execution. NOTE: the token-recovery leg of the full chain depends on the plugin's outbound validateToken() call to Payever's service; the unauthenticated hard-coded-credential identity overwrite (CWE-862/CWE-798) is independently exploitable.
出典: CVE.org (CVE Program・cvelistV5) NVD
参照URL
- web wordfence.com
- web plugins.trac.wordpress.org
- web plugins.trac.wordpress.org
- web plugins.trac.wordpress.org
- web plugins.trac.wordpress.org
- web plugins.trac.wordpress.org
- web plugins.trac.wordpress.org
- web plugins.trac.wordpress.org
- web plugins.trac.wordpress.org
- web plugins.trac.wordpress.org
- web plugins.trac.wordpress.org
- web plugins.trac.wordpress.org
- web plugins.trac.wordpress.org