ELEX HelpDeskに認証不要のRCE脆弱性、修正版は未確認
WordPressプラグインELEX WordPress HelpDesk & Customer Ticketing System 3.3.9以前に、ログイン不要でサーバー上のコードを実行される脆弱性が公表されました。導入の有無と版を調べ、修正版が確認できなければ無効化を検討します。
急ぎ度: 至急
CVSS v3が9.8で、認証なしにネットワークから悪用でき、公表時点で3.3.9より新しい修正版を確認できていないためです。
関係があるか
ELEX WordPress HelpDesk & Customer Ticketing Systemプラグインを有効にしているWordPressサイトが対象です。問い合わせ窓口やサポートページを公開している企業サイトが、とくに当てはまります。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| ELEX WordPress HelpDesk & Customer Ticketing System(WordPressプラグイン) | 3.3.9以前のすべての版 | 3.3.9より新しい修正版は、公表時点で確認できていません |
確かめ方
- 1WordPress管理画面のプラグイン一覧で、ELEX WordPress HelpDesk & Customer Ticketing Systemが入っているか、有効か、版が3.3.9以前かを見ます。
- 2複数のサイトを運用している場合は、本番だけでなく、ステージング環境や検証用のサイトにも同じプラグインがないか調べます。
- 3WP-CLIが使えるなら、
wp plugin get elex-helpdesk-customer-support-ticket-system --fields=name,status,versionで状態と版をまとめて確認できます。 - 4固定ページや投稿に、ショートコード
[wsdesk_support]を置いたページがないかを探します。
何が起きたか
ELEX WordPress HelpDesk & Customer Ticketing Systemに、外部の第三者がログインなしでサーバー上のコードを実行できてしまう脆弱性が見つかりました。公表日は2026年11月13日で、3.3.9までのすべての版が対象です。
CWEはCWE-502(信頼できないデータのデシリアライズ)です。プラグインは、フォームから送られてくる form パラメーターの文字列を、クラスの許可リストを設けないままPHPのオブジェクトに復元します。復元の際に細工されたデータを渡されると、PHP Object Injectionが成立し、サーバー上のコード実行につながります。
この処理にはサーバー側の認証がありません。守りはnonceだけですが、その値は [wsdesk_support] ショートコードを載せた公開ページに、誰でも読める形で出力されています。そのため、nonceが防御として働いていません。
攻撃の流れ
-
1
公開ページを確認
ショートコードを置いた公開ページから、誰でも読めるnonceの値を入手します。
-
2
細工データを送信
入手した値を添えて、ログインなしでプラグインの処理に細工したデータを送ります。
-
3
オブジェクトを復元
プラグインが許可リストなしでデータを復元し、意図しないオブジェクトが生成されます。
-
4
サーバー上でコード実行
サイトを動かすWebサーバーの権限で、攻撃者のコードが動きます。
どう悪用されるか
攻撃にアカウントは要りません。インターネット側から届く通信だけで成立し、サイトの管理者や訪問者に何かを操作させる必要もありません。CVSSのベクターはAV:N/AC:L/PR:N/UI:Nで、攻撃の難易度は低い扱いです。
攻撃者に必要なのは、ショートコードを載せた公開ページの閲覧と、その後の1回のPOSTだけです。nonceはそのページに公開されているので、一般の訪問者と同じ手順で入手できます。
成功すると、WordPressを動かしているプロセスの権限でコードを実行されます。機密性・完全性・可用性がすべて高い影響とされており、データベース接続情報を含む設定ファイルの読み取り、サイトの改ざん、バックドアの設置、同じサーバー上の別サイトへの波及などが想定されます。
今すぐやること
-
1
導入の有無と版を確認する
管理画面かWP-CLIで、プラグインの有無・有効状態・版を確認します。運用中のすべてのサイトを対象にし、ステージングや検証環境も含めます。
wp plugin get elex-helpdesk-customer-support-ticket-system --fields=name,status,version -
2
修正版が出ているか確認して更新する
WordPressのプラグインディレクトリの配布ページと、ELEX(elextensions)の告知で、3.3.9より新しい版と修正内容を確認します。公表当日のため、まだ出ていない可能性があります。出ていれば、バックアップを取ってから更新します。
-
3
修正版を確認できなければ無効化する
チケット窓口が業務に必須でなければ、修正版が出るまでプラグインを無効化します。止められない場合は、回避策の欄の内容を踏まえて、公開範囲を絞ることを検討します。
-
4
侵害の跡を調べる
公表直後の脆弱性ですが、細工されたデータが届いていないかを念のため調べます。Webサーバーのアクセスログで、ショートコードを置いたページへのアクセスの直後に、プラグインの処理へ送られたPOSTがないかを見ます。あわせて、見覚えのない管理者アカウント、更新日時が不自然なPHPファイル、wp-contentやuploads配下の新しい実行ファイルを確認します。
-
5
資格情報の見直しを検討する
不審な痕跡が見つかった場合は、データベースのパスワード、WordPressの管理者パスワード、wp-config.php内のキーとソルトを入れ替えます。
修正版がないあいだのつなぎ
修正版が確認できない間は、プラグインを無効化するのが最も確実です。チケット機能は止まるため、問い合わせの受付先を一時的にメールなどへ切り替えます。
[wsdesk_support] を置いたページを非公開にして、nonceの出力元を減らす方法もあります。ただし、ほかのページでnonceが出力されないことまでは確認できていないため、この方法だけを頼りにしないでください。
背景
ELEX WordPress HelpDesk & Customer Ticketing Systemは、WordPressのサイトに問い合わせチケットの受付と管理の機能を足すプラグインです。顧客がフォームから問い合わせを送るため、窓口ページはインターネットに公開されるのが前提です。今回の脆弱性では、その公開の仕組みが攻撃の足がかりになります。ショートコードを置いたページに出るnonceが、認証の代わりにならないからです。
CWE-502のデシリアライズ系の脆弱性は、PHPでは、復元の対象にできるクラスを制限していないコードで起きます。復元時に自動で呼び出される処理が、本来想定されていない使い方をされるためです。サーバー側で許可リストを設けていれば避けられる問題で、今回は許可リストがなく、認証もありません。そのためCVSSが9.8と最高クラスです。
よくある質問
Q.ショートコードを置いていないサイトは、対象外ですか。
Q.WordPress本体を最新にしていれば防げますか。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
影響パッケージ
| パッケージ | 影響を受ける版 → 修正版 | |
|---|---|---|
| elextensionsELEX WordPress HelpDesk & Customer Ticketing System |
3.3.9 以前→ 記載なし |
記載なし |
この記録には修正版の版が載っていません。修正版の有無と版は、本文か参照URLのベンダーの勧告で確かめてください。
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
The ELEX WordPress HelpDesk & Customer Ticketing System plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 3.3.9 via the 'form (specifically the attacker-controlled ticket_label field inside the url-encoded form string)' parameter parameter. This is due to missing server-side authentication and the absence of a class allowlist on deserialization, with the only guard being a nonce publicly emitted on any page carrying the [wsdesk_support] shortcode. This makes it possible for unauthenticated attackers to execute code on the server. A successful exploit requires a single anonymous GET to any public page carrying the [wsdesk_support] shortcode to harvest the publicly emitted wsdesk_nonce value, after which a single unauthenticated POST completes the attack.
出典: CVE.org (CVE Program・cvelistV5) NVD