The woes of sanitizing SVGs
Le projet Scratch a subi de nombreuses vulnérabilités liées aux SVG parce qu'il insérait du contenu SVG fourni par les utilisateurs directement dans le document principal pour des opérations comme la mesure de boîtes englobantes. Depuis 2019, une suite de correctifs successifs (suppression de balises script, adoption de DOMPurify, filtrage des href et parsing du CSS) a été déployée, mais chaque solution a rapidement été contournée par de nouvelles techniques menant à des XSS ou à des fuites HTTP. En 2026 des problèmes persistants incluent des fuites via url() et image-set(), des contournements liés aux variables CSS, aux échappements et aux syntaxes imbriquées, ainsi qu'une méthode exploitant de longues transitions pour appliquer un restylage global de la page. L'équipe souligne que l'empilement de complexité pour la désinfection est intenable car les parseurs tiers peuvent diverger des navigateurs et les spécifications CSS évoluent, ouvrant sans cesse de nouvelles voies d'exploitation. TurboWarp propose une alternative consistant à exécuter les SVG dans un iframe sandboxé avec une CSP restrictive et allow-same-origin, en laissant au navigateur empêcher les requêtes externes et l'exécution de scripts tout en conservant une désinfection minimale.