Asayomu Tech
注目★★★★★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 を含むナメスペース付き属性の再検証フロー(カスタムフィルタ追加など)を検討すべき。

詳細を読む → 元記事へ※ 本文は元記事をご確認ください (asayomu は要約のみ提供)

関連する記事

※ 外部記事の権利は原著作者に帰属します。著作権削除要請は copyright@asayomu.jp までご連絡ください(受領確認 24h・実処理 72h 以内)。