WordPress の画像最適化プラグイン Optimole に、ログインしていない第三者が公開ページに JavaScript を仕込める脆弱性が、WPScan から 9/14 に公開されました。有効インストールは 20 万です。
修正版 4.2.12 は公開より前の 9/8 に出ています。9/14 に脆弱性の中身が公開されたので、バージョンが修正前のサイトは、これを使った攻撃の対象になります。WPScan は攻撃の手順を 10/22 まで伏せていますが、同じ場所の脆弱性は 4 月にも公開されていて、そちらの説明にはどの入口にどの値を送るかまで書かれています。
https://wpscan.com/vulnerability/c8489eb1-e767-4b19-a7c0-124eab843d9e/
WPScan の advisory と Optimole の changelog をもとに、やることだけ整理しました。
取るべき対応
- プラグイン一覧で Optimole のバージョンを見る
- 4.2.12 か 4.2.13 なら対応済みです。4.2.13 は 9/14 に出た現行版です
- 4.2.11 以下なら 4.2.13 に上げる
- この脆弱性を塞いだのは 9/8 の 4.2.12 です。Optimole は 4 月・6 月・8 月にも、ログインなしで成立する同じ型の脆弱性が公開されていて、4.2.12 以降に上げるとそれらも全部塞がります
- 上げないまま使い続ける回避策は advisory に書かれていません
対象者
対象は 4.2.11 以下を入れているサイトです。成立条件になる設定は advisory に書かれていないので、バージョンだけで判断します。WPScan が今回の対象としているのは 4.2.3 から 4.2.11 までで、4.2.2 以下には 4 月に公開された前身の脆弱性がそのまま残っています。どちらも 4.2.12 で塞がっているので、見るのは「4.2.12 より前かどうか」だけで足ります。
| 対象 | 対象バージョン | 修正版 | 修正版の公開日(2026) |
|---|---|---|---|
| CVE-2026-5217 | 4.2.2 以下 | 4.2.3 | 4/1 |
| CVE-2026-84829 | 4.2.3〜4.2.11 | 4.2.12 | 9/8 |
起こったこと
ログインしていない攻撃者が、公開ページの img タグに任意の属性を書き込めます。Optimole には誰でも呼べる REST の入口があり、そこに送った srcset の値が保存されて、あとから img タグの srcset 属性にそのまま入ります。呼び出しには署名が要りますが、その署名はページの HTML に出ているので、訪問者なら誰でも取れると 4 月の advisory に書かれています。書き込まれた内容はページを開いた全員のブラウザで動くので、CVSS は 8.8 です。
原因
原因は WPScan の advisory に書かれています。4 月の脆弱性を塞いだ 4.2.3 で値をエスケープするようになったものの、その値が最終的に使われる場所に対しては不十分だった、というのが説明です。同じ入口の同じ値で、4.2.3 の修正をすり抜ける形が今回の脆弱性です。



