2 points par GN⁺ 2025-12-07 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Une nouvelle technique de clickjacking basée sur les filtres SVG a été proposée, étendant les attaques classiques de clic forcé en attaques interactives plus complexes
  • Les éléments de filtre SVG tels que feColorMatrix, feDisplacementMap et autres peuvent être appliqués à des iframes cross-origin, ce qui rend possibles des manipulations visuelles et l’exfiltration de données
  • En combinant ces filtres, des opérations de lecture de pixels, de logique et de manipulation d’interface conditionnelle deviennent possibles, permettant des scénarios de clickjacking multi-étapes ou d’incitation de saisie
  • Un cas réel a prouvé l’attaque via une vulnérabilité de Google Docs, pour laquelle le chercheur a reçu une récompense de 3133,70 $ du programme Google VRP
  • Cette technique met au jour une nouvelle surface d’attaque dans le modèle de sécurité des navigateurs et montre comment l’usage logique des filtres SVG peut devenir une menace

Vue d'ensemble du clickjacking SVG

  • Le clickjacking traditionnel consiste à superposer une iframe pour pousser un utilisateur à cliquer sans le vouloir
  • Le clickjacking SVG récemment proposé exploite des filtres SVG pour permettre des interactions et des fuites de données plus complexes
  • Des filtres comme feColorMatrix et feDisplacementMap s’appliquent aussi aux documents cross-origin, permettant de manipuler visuellement du contenu externe

Composition des filtres SVG

  • Les principaux éléments de filtre sont <feImage>, <feFlood>, <feOffset>, <feDisplacementMap>, <feGaussianBlur>, <feTile>, <feMorphology>, <feBlend>, <feComposite>, **<feColorMatrix>
  • Ils combinent et transforment des images d’entrée pour produire de nouvelles images, et peuvent être chaînés entre eux
  • Cette combinaison offre une grande liberté pour implémenter des effets visuels, masquages et manipulations de couleurs

Exemples d'attaque

  • Fausse captcha : utilisation de feDisplacementMap pour déformer du texte et amener l’utilisateur à entrer un code sensible
  • Masquage de texte gris (grey text hiding) : suppression d’indices et de messages d’erreur dans les champs via feComposite et feMorphology, afin d’inciter l’utilisateur à saisir le mot de passe choisi par l’attaquant
  • Lecture de pixels : détection de la couleur de pixels précis pour contrôler le comportement des filtres, permettant des attaques réactives détectant clics, survols et état des saisies

Logique booléenne et attaques composées

  • En combinant feBlend et feComposite, il est possible d’implémenter des portes logiques telles que AND, OR, XOR, NOT
  • Cela permet de construire une circuiterie logique complète directement dans le filtre SVG et d’automatiser des scénarios de clickjacking en plusieurs étapes
  • Dans l’exemple d’attaque de l’application Securify, l’ouverture de boîtes de dialogue, les clics sur cases à cocher et les clics sur boutons sont contrôlés de façon logique pour tromper l’utilisateur

Cas réel : vulnérabilité Google Docs

  • Détection et manipulation via la logique de filtre SVG des popups et champs de saisie apparus après un clic sur le bouton « Generate Document » de Google Docs
  • L’état de focus des champs, les textes gris et les écrans de chargement sont détectés en temps réel pour piloter le déroulement de l’attaque
  • Cette attaque a été signalée à Google et a donné lieu à une prime de bug bounty de 3133,70 $

Application aux QR codes

  • Une logique de génération de QR code peut être implémentée dans un filtre SVG, en encodant des données de pixels puis en les affichant sous forme de code QR
  • Quand l’utilisateur scanne le QR code, les données sont envoyées au serveur contrôlé par l’attaquant
  • L’usage de feDisplacementMap et de la correction d’erreur Reed–Solomon permet de générer des QR codes lisibles

Potentiel d’usages supplémentaires

  • Des usages variés sont possibles, comme la lecture de texte, l’exfiltration de données basée sur les clics, l’insertion de faux curseurs de souris
  • Les attaques peuvent être mises en place sans JavaScript, avec seulement CSS/SVG, ce qui laisse entrevoir des possibilités de contournement du CSP

Intérêt de la recherche

  • Le clickjacking logique basé sur les filtres SVG est une nouvelle technique non couverte par les travaux antérieurs
  • Les travaux précédents présentaient SVG comme un simple outil de dissimulation visuelle ; cette recherche démontre au contraire l’exécution logique et le contrôle d’interactions
  • L’auteur la présente comme une nouvelle classe de vulnérabilité, insistant sur la nécessité de revoir les mécanismes de sécurité des navigateurs

Conclusion

  • Cette recherche est saluée comme le premier cas d’attaque de sécurité exploitant des filtres SVG comme un langage de programmation
  • L’auteur prévoit d’en parler à la fin de 2025 lors de 39c3 et Disobey 2026
  • Le billet a été rédigé avec 42 Ko de HTML/CSS/SVG uniquement, sans images ni JS, montrant la créativité possible en recherche de sécurité expérimentale

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.