WordPress Litespeed Cache の脆弱性 CVE-2023-40000 が FIX:数百万のサイトが危険な状態

XSS Flaw In Litespeed Cache Plugin Exposes Millions Of WordPress Sites At Risk

2024/02/27 SecurityAffairs — WordPress LiteSpeed Cache プラグインにおける、認証を必要としないサイト全体の蓄積型 XSS の脆弱性 CVE-2023-40000 により、サイト全体が影響を受けると、Patchstack の研究者たちが警告している。無料版の LiteSpeed Cache プラグインは、WordPress で人気のあるキャッシュ・プラグインであり、400万以上のアクティブ・インストールがある。


この脆弱性の悪用に成功した未認証の攻撃者は、HTTP リクエストを1回実行するだけで、WordPress サイト上の機密情報を盗んだり、権限を昇格させることが可能になる。

Patchstack のアドバイザリでは、「このプラグインには、認証を必要としない蓄積型の XSS の脆弱性が存在し、サイト全体に影響が及ぶ可能性がある。この脆弱性の悪用に成功した未認証の攻撃者は、1つの HTTP リクエストを実行することで、WoedPress サイト上での機密情報を窃取や、権限昇格を実行する可能性を持つ」と詳述されている。

さらに Patchstack は、「この脆弱性は、ユーザーからの入力を処理するコードが、サニタイズと出力エスケープを実装していないことに起因する。このケースは、プラグインから利用可能な REST API エンドポイントの1つに対する、不適切なアクセス制御とも組み合わさっている。この脆弱性には、CVE-2023-40000 が割り当てられており、バージョン 5.7.0.1で修正されている」と述べている。

この脆弱性は、update_cdn_status 関数に存在しており、管理者への通知メッセージの POST body パラメータから、ダイレクトに HTML 値を構築することに起因している。影響を受けるパラメータに対して esc_html を介して、ダイレクトにユーザー入力をサニタイズすることで、問題を修正することが可能となる。さらに、update_cdn_status 関数に権限チェックを実装し、ハッシュ検証を組み込むことで、この関数へのアクセスは特権ユーザーのみに制限される。

この脆弱性は、2023年10月にリリースされたバージョン 5.7.0.1 で修正された。

Patchstack は、「管理者通知として表示されるメッセージには、エスケープとサニタイズを適用することを推奨する。データのコンテキストに応じて、HTML 出力 (HTML 属性の外側) の値をサニタイズするには、sanitize_text_field か esc_html の使用を推奨する。また、属性内の値をエスケープする際には、esc_attr 関数が使用できる。登録された REST ルートのエンドポイントに対しては、適切なパーミッションまたは認可チェックを適用することを推奨する」と締め括っている。