概要
- Scratch はSVG関連の脆弱性を長年抱えている
- SVGの サニタイズ 対策は毎年新たな問題が発覚し続けている
- XSSや HTTPリーク など多様な攻撃手法が発見されてきた
- 複雑化する サニタイズ処理 でも完全な安全性は実現できていない
- 今後も 新たな脆弱性 が発生し続ける可能性が高い
ScratchにおけるSVGサニタイズの歴史と課題
- Scratch はユーザー生成SVGをDOMに挿入し、信頼性の高いバウンディングボックス計測などの目的で利用
- SVGのDOM挿入はどんなに短時間でも 根本的に危険な操作
- サニタイズのために複雑なパーサやフィルタを増築するアプローチを採用
- しかし 根本的な解決には至らず、毎年新しい抜け道が発見される状況
2019年:scriptタグによるXSS
- SVG内の
ちなみに、Google スライドが SVG サポートを持っていない理由は、15 年近く前からその機能をリクエストするチケットがあるのにね。