WordPress のイベント管理プラグイン The Events Calendar に、ログインしていない第三者がサーバー上で PHP を実行できる脆弱性が 2 件、Wordfence から 9/11(米国時間)に公開されました。有効インストールは 60 万です。
修正版はどちらも公開より前に出ています。1 件目を塞いだ 6.17.3.1 は 8/26、2 件目を塞いだ 6.17.4.1 は 9/10 です。9/11 に脆弱性の中身が公開されたので、バージョンが修正前のサイトは、これを使った攻撃の対象になります。
https://www.wordfence.com/threat-intel/vulnerabilities/id/cc2ccfeb-6df6-4fee-96a5-94f8dd131f7c
https://www.wordfence.com/threat-intel/vulnerabilities/id/a0c67346-534a-4b67-a904-fa148703707a
Wordfence の advisory と The Events Calendar の changelog をもとに、やることだけ整理しました。
取るべき対応
- プラグイン一覧で The Events Calendar のバージョンを見る
- 6.17.4.1 なら対応済みです。9/10 に出た現行版です
- 6.17.4 以下なら 6.17.4.1 に上げる
- 6.17.3.1 と 6.17.4 は 1 件目だけ塞がっていて、2 件目が残っています
- すぐ上げられないなら、イベントページのコメントをオフにする
- 「イベント > 設定 > 表示」タブの「コメントを表示」を外す。2 件とも、イベントページでコメントが有効になっていることが成立条件です
- コメントを承認制にするだけでは足りません。Wordfence は、書き込んだ本人が承認前のコメントを見られる URL を WordPress が返すので、承認の前に攻撃が届くとしています
対象者
対象は 6.17.4 以下を入れていて、イベントページのコメントを有効にしているサイトです。この設定は「イベント > 設定 > 表示」の「コメントを表示」で、初期状態ではオフです。オフのままなら、6.17.4 以下でも 2 件とも成立しません。オンにしているなら、承認制にしていても対象から外れません。
| 対象 | 対象バージョン | 修正版 | 修正版の公開日(2026) |
|---|---|---|---|
| CVE-2026-78159 | 6.17.3 以下 | 6.17.3.1 | 8/26 |
| CVE-2026-78006 | 6.17.4 以下 | 6.17.4.1 | 9/10 |
起こったこと
未認証の攻撃者が、イベントにコメントを 1 件書き込むだけで、サーバー上で任意の PHP を実行できる状態でした。コメントの本文にウィジェットのブロック記法を仕込むと、イベントの個別ページを表示する処理がそれをブロックとして解釈します。1 件目はウィジェットに渡した値がそのまま関数として呼ばれるもので、2 件目はコピーしたウィジェットの設定を安全と判定する検査がすり抜けられ、PHP オブジェクトインジェクションに至るものです。CVSS はどちらも 9.8 です。
原因
原因は Wordfence の advisory に書かれています。イベントの個別ページは、コメント欄を含めた HTML 全体を組み立てたあとで、もう一度ブロックとして解釈していました。コメントに書かれたウィジェットのブロックがそこで処理されます。1 件目は、ウィジェットの classes に渡した配列が普通の配列だとオブジェクトの検査を通過し、その先で関数として呼び出される点でした。2 件目は、コピーしたウィジェットの設定を検査する関数が、PHP の事前解析でマジックメソッドを起動されて回避される点で、検査を通った設定に正規の署名を付ける処理と組み合わさって unserialize に到達していました。



