前提条件なし、プラグインなしでも悪用可能
この脆弱性の最大の特徴は、悪用に前提条件が一切ないことです。プラグインを何も導入していない標準構成のWordPressインストールでも、認証を経ていない匿名ユーザーによって悪用され得るとSearchlight Cyberは説明しています(出典)。
世界で5億以上のWebサイトがWordPressを使用しているとされる。深刻度の高さを踏まえ、防御側にパッチ適用の時間を与えるため、現時点では技術的詳細を公開しない。
技術的な攻撃手法そのものは意図的に非公開とされていますが、代わりに自分のサイトが影響を受けるかどうかを直接確認できるチェッカーツールが公開されています。
影響を受けるバージョンと修正版
影響範囲と修正状況は次の通りです。
| バージョン | 状態 |
|---|---|
| 6.9.0未満 | 影響なし |
| 6.9.0〜6.9.4 | 影響あり(6.9.5で修正済み) |
| 7.0.0〜7.0.1 | 影響あり(7.0.2で修正済み) |
(出典)
最も確実な対策は、6.9系であればWordPress 6.9.5へ、7.0系であれば7.0.2へ即座にアップデートすることです。
即時アップデートできない場合の緩和策
すぐにアップデートできない場合に向けて、Searchlight Cyberは複数の緊急緩和策を提示しています。
- REST APIのバッチエンドポイント(
/wp-json/batch/v1およびrest_route=/batch/v1というクエリパラメータ)へのアクセスをブロックする(両方のパターンをブロックする必要がある) - SSHまたはFTP経由でWordPressのファイルシステムに、匿名ユーザーによるREST batch APIへのリクエストを認証必須にするプラグインを設置し、管理画面から有効化する
提供されているプラグインコードは、rest_pre_dispatchフィルターを使って/batch/v1ルートへの匿名リクエストを401エラーで拒否する内容です。ただし、Searchlight Cyberはこれらの緩和策について、正規の利用にも影響が及ぶ可能性があるため、アップデートまでの緊急かつ一時的な措置としてのみ検討するよう注意を促しています(出典)。
発見の経緯
この脆弱性はSearchlight CyberのAdam Kues氏によって発見・報告されました。技術的詳細を伏せたまま脆弱性の存在とチェッカーツールのみを公開するという対応は、パッチ適用前の悪用リスクを抑えつつ、サイト運営者に自己診断の手段を提供するバランスを取った開示方法だといえます。
世界の5億サイト以上が使うプラットフォームのコア部分に、しかも「プラグインなし・認証なし」で悪用できる脆弱性が見つかったというのは、正直かなり衝撃的な話です。自分やクライアントのWordPressサイトを運用している場合は、真っ先にバージョンを確認しておきたいところです。