Rapport CTI technique du 9 août 2026
Résumé exécutif
Le chercheur PortSwigger Gareth Heyes a présenté à Black Hat USA 2026 une série de chaînes d'attaque exploitant exclusivement du CSS et du HTML autorisés par les sanitiseurs de webmails pour voler des mots de passe, détourner des tokens de session et manipuler des agents IA connectés à la messagerie. Les cibles couvrent Outlook, Gmail, Fastmail, Proton Mail, Yahoo Mail et AOL Mail. Aucune de ces techniques ne repose sur une exécution de script : elles exploitent des divergences entre ce qu'un sanitiseur autorise et ce que le moteur de rendu du navigateur produit réellement, permettant au contenu d'un email non fiable de franchir la frontière censée le séparer de l'interface de confiance du client mail.
Le point le plus préoccupant pour un public professionnel concerne les agents IA connectés à la messagerie. Une chaîne Gmail combinée à Claude Cowork utilise le contournement CSS image-set() pour déclencher une requête externe après injection de prompt indirecte, exfiltrant un token Slack simplement parce que l'utilisateur a demandé à l'assistant de traiter ses emails. Au moment de la publication le 8 août, le contournement Outlook de vol de mot de passe et le bypass Gmail image-set() restaient fonctionnels ; Fastmail avait corrigé deux bugs de mutation CSS et un bypass de proxy Proton Mail ne fonctionnait plus au moment du nouveau test. Les preuves de concept sont publiques.
Chronologie
| Date | Événement |
|---|---|
| Mai 2023 (référence antérieure) | Premiers abus documentés de CSS pour l'évasion de tracking dans les emails |
| 23 mai 2026 | Divulgation initiale du chercheur à Atlassian dans un contexte connexe (non lié directement à ce sujet, cf. article RovoBlast) |
| 6 août 2026 | Nouveau test de PortSwigger confirmant que les bypass Outlook et Gmail restent fonctionnels, tandis que Fastmail et Proton Mail ont partiellement corrigé |
| 8 août 2026 | Présentation à Black Hat USA 2026 et publication du rapport technique et du dépôt de preuves de concept |
Fiche vulnérabilité (format fiche CTI)
Il ne s'agit pas d'une CVE unique mais d'un ensemble de techniques touchant plusieurs fournisseurs de webmail indépendamment. Aucun identifiant CVE n'a été assigné à ce jour et aucune de ces techniques n'apparaît au catalogue CISA KEV, ce qui est cohérent avec la nature du rapport : une recherche de type preuve de concept, sans exploitation malveillante documentée à ce stade.
Outlook / Firefox | Pas de CVE, pas de CVSS officiel | Client webmail Outlook, rendu Firefox
Des éléments label autorisés par le sanitiseur peuvent déclencher des contrôles situés hors du corps du message, et du JavaScript applicatif transforme des attributs personnalisés sanitisés en nouveaux nœuds DOM porteurs de CSS non couvert par la liste blanche du sanitiseur. Une astuce de parsing de media-query donne ensuite à l'attaquant du CSS arbitraire. La chaîne déguise un élément select en champ de mot de passe ; Firefox réinitialise son minuteur de sélection d'environ une seconde lorsque le select sort de l'écran, ce qui rend la capture de frappe quasi temps réel. Statut au 8 août : fonctionnel, non corrigé selon le chercheur, qui ne précise pas si la chaîne complète de capture de mot de passe a été corrigée depuis.
Yahoo Mail / AOL Mail | Pas de CVE, pas de CVSS officiel | Interface de rédaction Yahoo/AOL, Firefox
Dans Firefox, du HTML collé peut brièvement conserver du CSS actif avant sanitisation. L'attaquant initie un flux de connexion par email (login token de type Medium) puis fait en sorte que la victime colle du CSS fourni par l'attaquant dans un brouillon Yahoo ou AOL. Les requêtes résultantes révèlent suffisamment de chiffres du token de connexion à 12 caractères pour que le serveur de l'attaquant le reconstitue et s'authentifie à la place de la victime.
Gmail / agents IA connectés | Pas de CVE, pas de CVSS officiel | Rendu Gmail, agents IA avec accès Gmail (démontré sur Claude Cowork)
Le fallback image-set() de Gmail peut déclencher une requête externe malgré la sanitisation. Chaîné à une injection de prompt indirecte dans un email traité par un agent IA connecté à Gmail, l'attaque fait récupérer par l'agent un token (démontré avec un token Slack) et le place dans un brouillon HTML ; la simple consultation du brouillon exfiltre le token. Statut au 8 août : fonctionnel côté Gmail selon le nouveau test du 6 août.
Fastmail | Pas de CVE, pas de CVSS officiel | Interface Fastmail
Deux bugs de mutation CSS ont été corrigés par Fastmail suite à la divulgation. Une technique distincte de "CSS hotwiring" permet de rediriger des clics vers des actions d'interface non voulues et en plusieurs étapes ; un bypass de proxy d'image avec backslash échappé s'appuie sur un domaine user.fm en liste blanche pour révéler le moment où un email est consulté.
Proton Mail | Pas de CVE, pas de CVSS officiel | Interface Proton Mail
Un vecteur exposant l'adresse IP du destinataire a été démontré séparément par le chercheur. Un contournement de proxy ne fonctionnait plus lors du nouveau test, suggérant une correction côté Proton, bien que cela ne soit pas confirmé explicitement par le fournisseur.
PoC disponible : oui, un dépôt public GitHub (portswigger/css-the-bomb-inside-your-inbox) contient les preuves de concept pour les techniques divulguées. Aucune exploitation malveillante n'est rapportée à ce jour ; il s'agit d'une recherche défensive rendue publique après tests responsables auprès de plusieurs fournisseurs.
Diagramme de la chaîne d'attaque

Cartographie radiale des six vecteurs webmail documentés par PortSwigger, Black Hat USA 2026.
Analyse technique
Étape 1 : franchir la frontière message/interface avec du CSS autorisé
Le principe commun à toutes ces chaînes est d'exploiter deux failles de conception distinctes : soit abuser de HTML et CSS que le webmail autorise déjà légitimement, soit créer une divergence entre ce qu'un sanitiseur approuve et ce que le navigateur ou l'application produit finalement. Les deux permettent de franchir la frontière entre un message non fiable et son interface de confiance, sans jamais exécuter de JavaScript injecté directement.
Étape 2 : Outlook, du label au vol de mot de passe en temps réel
Dans la chaîne Outlook, des éléments label autorisés par le sanitiseur servent de point de départ pour déclencher des contrôles d'interface situés hors du message. Du JavaScript applicatif légitime convertit ensuite des attributs personnalisés sanitisés en nouveaux nœuds DOM porteurs de CSS non couvert par la liste blanche. Une astuce de parsing de media-query complète la chaîne en donnant à l'attaquant du CSS arbitraire, qui sert à déguiser un select en champ de mot de passe. Le comportement du minuteur de sélection de Firefox (réinitialisé à chaque fois que le select quitte l'écran) transforme cette primitive en capture de frappe quasi temps réel.
Étape 3 : Yahoo/AOL, la course au collage
Le vecteur Yahoo/AOL repose sur une fenêtre de race condition : dans Firefox, le HTML collé conserve brièvement du CSS actif avant que la sanitisation ne s'applique. En combinant un flux de connexion par email (token à 12 caractères) et une manipulation du presse-papiers, l'attaquant amène la victime à coller du CSS malveillant qui révèle progressivement les caractères du token via les requêtes CSS déclenchées, jusqu'à permettre la reconstitution complète côté serveur attaquant.
Étape 4 : exfiltration par clic quand le CSP bloque les ressources externes
Le rapport introduit également une technique d'exfiltration basée sur le clic pour les cas où une Content Security Policy bloque les ressources externes. À partir d'une injection de style et d'un token numérique affiché en texte dans l'email, le CSS peut déterminer quels chiffres apparaissent et à quelle fréquence, masquer les liens ne correspondant pas et ne laisser visible que le lien correspondant. Un simple clic de la victime envoie alors les chiffres et leur fréquence au serveur de l'attaquant, sans jamais nécessiter de requête réseau directe issue du rendu de l'email.
Étape 5 : Gmail et l'IA connectée, l'injection de prompt comme accélérateur d'impact
Le fallback image-set() de Gmail permet de déclencher une requête externe malgré la sanitisation. Chaînée à une injection de prompt indirecte, cette primitive change de nature quand un agent IA est dans la boucle : après que l'attaquant a déclenché un email de confirmation de token Slack et que la victime a demandé à l'agent de traiter ses emails, les instructions injectées font récupérer le token par l'agent et le placer dans un brouillon HTML. La simple consultation du brouillon suffit à l'exfiltrer. Une démonstration parallèle sur Fastmail cible le navigateur IA Atlas d'OpenAI : des pseudo-éléments CSS et de l'opacité font que l'humain voit un texte inoffensif pendant que le modèle lit des instructions cachées, provoquant l'ouverture d'onglets et l'encodage du nom de la victime dans des fragments d'URL lorsqu'elle demande une simple traduction.
Indicateurs de compromission
Cette recherche étant une divulgation de technique et non une campagne active documentée, il n'existe pas d'IOC réseau ou de hash de malware classique. Les indicateurs pertinents sont comportementaux et applicatifs.
| Type | Valeur |
|---|---|
| Dépôt de preuves de concept | github.com/portswigger/css-the-bomb-inside-your-inbox |
| Signature comportementale | Présence d'éléments select positionnés hors écran dans un email HTML reçu |
| Signature comportementale | Attributs CSS personnalisés combinés à des media-queries inhabituelles dans le corps d'un email |
| Signature comportementale | Requêtes image-set() sortantes déclenchées par un client de messagerie sans action utilisateur explicite |
| Signature comportementale | Activité d'agent IA (Cowork, Atlas, etc.) initiant des requêtes réseau ou des ouvertures d'onglets immédiatement après le traitement d'un email |
| Domaine de confiance abusé | user.fm (bypass proxy d'image Fastmail) |
MITRE ATT&CK
Il n'existe pas de cartographie officielle publiée par PortSwigger ou un fournisseur pour cette recherche ; la correspondance ci-dessous est une lecture technique du rapport, pas une attribution vendeur.
| Tactique | Technique | ID | Justification |
|---|---|---|---|
| Initial Access | Phishing | T1566 | Le vecteur d'entrée reste un email HTML malveillant reçu par la victime |
| Credential Access | Input Capture | T1056 | Capture de frappe via le déguisement CSS d'un select en champ de mot de passe |
| Credential Access | Steal Web Session Cookie / Token Theft | T1539 | Vol du token de connexion Yahoo/AOL et du token Slack via Gmail |
| Collection | Data from Information Repositories | T1213 | Exfiltration de contenu de brouillon email après manipulation CSS |
| Command and Control | Application Layer Protocol | T1071 | Requêtes CSS/image-set() servant de canal d'exfiltration discret |
| Defense Evasion | Impair Defenses: Disable or Modify Tools | T1562 | Contournement de la Content Security Policy via l'exfiltration par clic |
| Collection (agents IA) | Automated Collection | T1119 | Récupération automatisée du token Slack par l'agent IA suite à injection de prompt |
Remédiation : checklist opérationnelle
- Isoler le rendu HTML des emails dans des iframes sandboxées avec une politique CSP stricte, en suivant la recommandation directe du chercheur aux fournisseurs de webmail.
- Restreindre le CSS autorisé à une liste blanche de caractères et de propriétés plutôt qu'à une liste noire, pour éliminer les divergences de parsing exploitées dans la chaîne Outlook.
- Vérifier systématiquement les attributs personnalisés avant de les laisser être convertis en nœuds DOM porteurs de CSS par du JavaScript applicatif.
- Bloquer ou fortement limiter les éléments select et les sélecteurs CSS dangereux dans le contenu HTML des emails entrants.
- Empêcher les requêtes d'image déclenchées par du contenu attaquant-contrôlé vers des domaines non explicitement autorisés, y compris via les fallbacks comme image-set().
- Pour les organisations utilisant des agents IA connectés à la messagerie (Cowork, Copilot, Atlas ou équivalents), auditer les permissions accordées à ces agents et désactiver le traitement automatique d'emails non filtrés provenant de expéditeurs externes non vérifiés.
- Sensibiliser les utilisateurs à ne jamais coller de contenu CSS ou de style fourni par un tiers dans un brouillon d'email, en particulier dans le cadre de flux de connexion par email.
- Surveiller les logs d'agents IA pour toute activité d'ouverture d'onglet ou de requête réseau immédiatement après le traitement automatisé d'un email, signe potentiel d'exécution d'instructions injectées.
- Suivre les correctifs des fournisseurs de webmail utilisés en interne : au 8 août 2026, Fastmail et probablement Proton Mail ont partiellement corrigé, tandis qu'Outlook et Gmail restaient vulnérables aux chaînes documentées.