注目★★★★★GitHub Advisory
lxml の HTML サニタイザーが名前空間付き属性の javascript: URL をスキップ、XSS リスク
30秒で把握
- 1lxml 6.1.0 以下・lxml_html_clean 0.4.4 以下で xlink:href 属性の javascript: URL をサニタイザーがスキップ
- 2safe_attrs_only=False 設定時に XSS 実行が可能・SVG アンカー仕様に準拠するブラウザで動作確認済み
- 3link_attrs 許可リストに名前空間付き属性を追加するパッチの提供予定・現在のバージョンでは属性フィルタを強化すべき
要約
lxml 6.1.0 以下と lxml_html_clean 0.4.4 以下に XSS 脆弱性が存在する。Cleaner のサニタイザーが URL スキーム(javascript: など)をフィルタリングする際、xlink:href のような名前空間付き属性を見落とす。safe_attrs_only=False で実行する場合、<a xlink:href="javascript:…"> の形式で埋め込まれた JavaScript がサニタイザーを通過し、ブラウザが SVG アンカー仕様に準拠していればクリック時に実行される。根本原因は link_attrs の許可リストが名前空間付き属性を含まない設計欠陥と同じ。
あなたへの影響
lxml_html_clean を使い safe_attrs_only=False で UGC をサニタイズするチームは。
推奨:本脆弱性の存在を認識した上で xlink:href を含むナメスペース付き属性の再検証フロー(カスタムフィルタ追加など)を検討すべき。