報告者: Marco Paciaroni (BomboBombone)。
Cargoは、Drilldownパンくずリスト用に階層フィルタの値をフォーマットする際、エスケープ処理を保持していませんでした。リクエストデータが、生成されるページ内でHTMLとして解釈される可能性がありました。
CVEレコードでは、Cargo 3.9.4までが影響を受けると特定されています。
報告されたシナリオでは、階層フィールドを持つ公開Cargoテーブルが必要でした。匿名の攻撃者が、被害者が開くリクエストを用意することで、wikiオリジン上でスクリプトが実行される可能性がありました。
元の報告では、ローカルのMediaWikiインスタンス上で、反射されたフィルタ表示からのブラウザ実行が記録されています。通常のフィルタ値はテキストとしてレンダリングされました。
アップストリームの変更では、フォーマットされたフィルタ出力からエンティティデコードを削除し、意図したテキスト境界を維持するようにメッセージ処理を調整しています。
python poc.py https://wiki.example TABLE FIELD
このスクリプトは、無害なDOMマーカーを付けて階層フィルタのリクエストを送信し、レスポンスにエスケープされていない画像要素が含まれているかどうかを報告します。
公開されているCVEの説明では、現在この問題を蓄積型XSS(stored XSS)と分類しています。提出された報告では、レスポンスに反射されるリクエスト値を記述しています。本報告は、CVEレコードを変更することなく、観測されたその挙動を記述するものです。