Une simple police de caractères suffirait à tromper tous les assistants IA

Ce que l'IA lit n'est pas ce que vous voyez — Vous tombez sur une page web louche qui vous demande d'exécuter une commande dans le terminal.
Réflexe sain : vous demandez à votre assistant IA de vérifier si c'est safe. Il analyse la page, vous répond que tout est cool, c’est bon t’inquiète frère. Sauf que la commande que VOUS voyez à l'écran et le texte que l'IA a lu dans le HTML n'ont juste strictement rien à voir.
Poisoned Typeface : le chiffre de César, version CSS

Des chercheurs de LayerX, une entreprise spécialisée dans la sécurité des navigateurs, ont partagé une attaque aussi élégante que vicieuse. Le principe tient en deux ingrédients : une police de caractères custom et un peu de CSS.
La police agit comme un code secret appliqué aux caractères eux-mêmes : chaque lettre dans le HTML est remappée visuellement par la font. Le texte "normal" du code source (en l’occurence pour test, de la fanfiction sur le jeu vidéo Bioshock) apparaît comme du charabia illisible pour l'utilisateur, tandis qu'un blob encodé dans le DOM s'affiche parfaitement lisible à l'écran.
Le CSS se charge ensuite de masquer le texte innocent (taille 1px, couleur identique au fond) et d'afficher le contenu malveillant en grand et en couleur.

Résultat : le navigateur montre des instructions pour ouvrir un reverse shell sur votre machine (pour tenter de prendre le contrôle de votre terminal à distance). L'assistant IA, lui, ne voit que de la fanfiction inoffensive et vous dit que la page est parfaitement clean.

Et le tout sans JavaScript, sans exploit navigateur, sans faille à proprement parler.
Tout le monde tombe dans le panneau
LayerX a testé son PoC en décembre 2025 sur une large brochette d'assistants : ChatGPT, Claude, Copilot, Gemini, Grok, Perplexity, et d’autres encore. Le résultat : aucune détection.
Chaque assistant a analysé le DOM, vu la fanfiction Bioshock, ignoré le blob encodé (traité comme du simple bruit), et conclu avec aplomb que la page ne présentait aucun problème de sécurité. Certains ont même activement encouragé l'utilisateur à suivre les instructions affichées (c'est-à-dire à déclencher le reverse shell). Nice.
Le problème est structurel : ces assistants lisent le HTML comme du texte structuré, mais ne rendent jamais la page visuellement.
Ils n'ont aucune idée de ce que le navigateur affiche réellement. Et comme les polices custom ne sont pas considérées comme un vecteur d'attaque sémantique par les modèles de sécurité web actuels, personne ne vérifie les tables de mapping des glyphes.
LayerX a signalé le problème à tous les éditeurs concernés en décembre 2025. Anthropic, OpenAI, Google, Perplexity, xAI, Dia : tous ont classé le rapport sans suite, invoquant tour à tour le "social engineering", les "limitations connues des LLM" ou l'absence d'impact suffisant.
Le seul éditeur à avoir traité le problème jusqu'au bout, c'est Microsoft. Copilot a été corrigé dans les 90 jours de disclosure réglementaires. Microsoft, premier de la classe en sécurité IA ?
DOM, Sweet DOM
Au-delà de cette attaque spécifique, c'est la confiance aveugle accordée aux assistants IA qui pose question. On leur demande de plus en plus d'évaluer la sécurité de pages web, de résumer du contenu, de détecter des menaces — et de plus en plus en totale autonomie.
Mais d’une certaine manière, ce qu’ils voient n'est qu'une couche du web (le DOM), et ils sont encore à ce jour structurellement aveugles à tout ce qui se passe dans le rendu visuel.
LayerX recommande aux éditeurs d'implémenter une analyse en double mode (DOM + rendu), de traiter les polices custom comme une surface d'attaque potentielle, et surtout d'arrêter d'affirmer qu'une page est "safe" quand ils sont incapables de vérifier ce que l'utilisateur voit réellement.
Reste que ce type d'analyse en double couche implique de faire tourner un moteur de rendu en plus du parsing texte, ce qui veut dire plus de compute, plus de tokens consommés, et au final une facture plus salée pour des assistants IA dont le coût d'inférence est déjà un sujet assez brûlant.
À propos de l'auteur
Nicolas Lecointre
Chief Happiness Officer des développeurs, ceinture noire de sudo. Pour rire, j'ai créé Les Joies du Code. J'utilise Vim depuis 10 ans parce que je sais pas comment le quitter.
À lire également

Passbolt : le gestionnaire de mots de passe open source que votre équipe mérite vraiment
Je connais l’histoire, vous la connaissez, on la connaît tous. Le stagiaire qui est resté six mois, qui a fini par avoir accès à un peu (beaucoup) plus de choses...
Articles similaires

DarkSword : le kit d'exploit iOS a fuité sur GitHub, tout le monde peut pirater des iPhone

OVHcloud : un hacker revendique le vol de 590 To de données et 1,6 million de comptes clients

Trivy compromis 2 fois en 3 semaines : quand l'outil de sécurité devient le vecteur d'attaque

13 ans plus tard, la Xbox One réputée imprenable se fait hacker

DarkSword : le kit d'exploit iOS a fuité sur GitHub, tout le monde peut pirater des iPhone

OVHcloud : un hacker revendique le vol de 590 To de données et 1,6 million de comptes clients

Trivy compromis 2 fois en 3 semaines : quand l'outil de sécurité devient le vecteur d'attaque

13 ans plus tard, la Xbox One réputée imprenable se fait hacker
Plus de contenu
Quand quelqu'un me dérange alors que je suis lancé sur un gros refactoring

Quand le boss passe dans l'open space

Quand le chef exige que je fasse une revue de code sur un langage que je ne connais pas

Quand on me montre un bug dont je suis responsable

Quand mon correctif est sale mais que je le livre rapidement
Quand je relis mon code pour la 3ème fois et que je vois que j'ai oublié un return

Quand j'utilise une bibliothèque sans avoir lu la doc

L'histoire de ma vie !
Quand quelqu'un me dérange alors que je suis lancé sur un gros refactoring

Quand le boss passe dans l'open space

Quand le chef exige que je fasse une revue de code sur un langage que je ne connais pas

Quand on me montre un bug dont je suis responsable


