
CVE-2026-96873(CirrusSearchの診断用explain出力における反射型XSS)の概念実証およびパッチ検証に関するメモと、Pythonによる検証スクリプト。
報告者: Marco Paciaroni (BomboBombone)。
CirrusSearchは、検索関連の診断テキストを一貫してエスケープすることなくHTMLとしてレンダリングしていました。信頼できないテキストが、explainレスポンス内で実行可能なマークアップになる可能性がありました。
CVEレコードでは、CirrusSearchの1.46.0までのバージョンが影響を受けると特定されています。
動作するCirrusSearchバックエンドが必要です。報告された経路はアカウントなしでアクセス可能であり、悪用には被害者が攻撃者の用意したリクエストを開くことが必要でした。スクリプト実行は、被害者が持つ権限の範囲内でwikiのオリジン上で発生しました。
元の報告では、HTMLとしてレンダリングされたローカルのHTTPレスポンスと、無害なマーカーのブラウザ上での実行が記録されています。対照リクエストでは通常の診断出力が生成されました。
上流の変更では、MediaWikiのHTMLヘルパーを用いてexplain出力を再構築し、説明、パス、タイトル、その他のテキストがそれぞれの出力コンテキストに応じてエスケープされるようにしています。
python poc.py https://wiki.example
このスクリプトは、影響を受ける診断経路を通じて無害なタイトル変更マーカーを送信し、生成されたURLを出力して、マーカーが生のHTMLとして返されたかどうかを確認します。