TONTOU contourne les mitigations Spectre v2 et dérobe les hashs Linux en 18 minutes
Le **6 août 2026**, des chercheurs du **MIT CSAIL** ont présenté à **Black Hat USA** une nouvelle attaque CPU qui contourne les correctifs **Spectre v2** sur **Intel** et **AMD**. TONTOU exploite la fenêtre entre la neutralisation du prédicteur de branche et son utilisation pour extraire `/etc/shadow` à 5,47 octets par seconde. Les distributions Linux doivent intégrer les nouveaux correctifs noyau sans délai.
6 août 2026, 14 h 03 EDT, Las Vegas. Daniël Trujillo, doctorant au MIT CSAIL, monte sur la scène de Black Hat USA. Il ne présente pas un nouveau malware. Il montre comment quatre ans de correctifs Spectre v2 sur Intel et AMD peuvent être contournés avec une précision de 91,97 %. En 18 minutes en moyenne, son attaque extrait /etc/shadow d’une machine Linux 6.14 — le fichier qui stocke les hashs de mots de passe.
TONTOU — Time-of-Neutralization to Time-of-Use — n’est pas une variante inédite de Spectre. C’est une exploitation méthodique d’une hypothèse que les défenses actuelles tenaient pour acquise : que la fenêtre entre le nettoyage du prédicteur de branche et son utilisation est inexploitable.
L’héritage empoisonné de Spectre v2
Spectre v2, aussi connu sous le nom de Branch Target Injection (BTI), exploite le prédicteur de branche indirect du processeur. Le CPU spécule sur la cible d’un branchement indirect ; un attaquant peut empoisonner cette prédiction pour faire exécuter du code à une adresse de son choix, puis observer les effets de bord dans le cache pour déduire des données sensibles.
Les deux familles de CPU ont déployé des mitigations dites de neutralisation :
- Intel : eIBRS (enhanced Indirect Branch Restricted Speculation) — isole le prédicteur entre contextes.
- AMD : Safe RET — nettoie le Return Stack Buffer (RSB) lors des transitions noyau↔espace utilisateur.
Ces deux mécanismes reposent sur un principe commun : nettoyer le prédicteur avant qu’il ne soit utilisé par une victime, en supposant qu’un attaquant ne peut pas le ré-empoisonner entre le nettoyage et l’utilisation.
C’est cette hypothèse que TONTOU fait tomber.
La fenêtre TONTOU : ce que les mitigations ne voient pas
L’idée centrale de Trujillo et de sa directrice de recherche, la professeure Mengjia Yan, tient en une phrase : il existe un intervalle entre le moment où le CPU neutralise le prédicteur et le moment où le code victime l’utilise.
Pendant cet intervalle — la fenêtre TONTOU — un attaquant qui exécute du code non privilégié peut ré-empoisonner l’état microarchitectural avant que la victime ne l’utilise.
Les chercheurs ont identifié quatre étapes :
- Neutralisation : le noyau sort d’un appel système ;
Safe REToueIBRSnettoie le prédicteur. - Redirection : l’attaquant déclenche une interruption matérielle (timer interrupt) dans la fenêtre post-neutralisation.
- Empoisonnement : le gestionnaire d’interruption — code noyau légitime — est détourné pour ré-empoisonner le prédicteur de branche.
- Utilisation : le code victime exécute un branchement indirect avec le prédicteur empoisonné, spéculant vers une gadget choisie par l’attaquant.
« Un attaquant sans accès privilégié peut lire la mémoire arbitraire du système, y compris les hashs de mots de passe », a déclaré Trujillo à BleepingComputer.
Exécution pratique : /etc/shadow en 18 minutes
Sur une machine AMD Zen 2 équipée de Linux 6.14.0-37-generic avec 16 Go de RAM, les chercheurs ont démontré l’attaque complète :
- Débit d’exfiltration : 5,47 octets/seconde
- Précision : 91,97 %
- Cible : le fichier
/etc/shadow(hashs de mots de passe) - Taux de succès : 5 tentatives réussies sur 10, chaque tentative durant en moyenne 18 minutes
Ce débit paraît faible, mais il suffit pour extraire des secrets statiques. Un hash de mot de passe fait typiquement entre 80 et 120 caractères — une cible parfaitement adaptée au rythme de TONTOU.
Sur Intel, l’attaque est techniquement possible mais plus complexe à réaliser — des contraintes logicielles supplémentaires sur le timing des interruptions rendent l’exploitation moins fiable sans ajustements spécifiques.
Le vecteur d’injection d’interruption
L’innovation technique clé de TONTOU est l’injection d’interruption par un processus non privilégié. Les chercheurs exploitent le fait que les programmes utilisateur Linux peuvent programmer des interruptions timer qui s’exécutent dans le contexte noyau :
# Un processus non root peut créer un timer haute résolution
# qui déclenche une interruption noyau à un moment précis
timerfd_create(CLOCK_MONOTONIC, 0);
timerfd_settime(fd, TFD_TIMER_ABSTIME, &spec, NULL); L’interruption force le noyau à basculer vers le gestionnaire d’interruption, que les chercheurs utilisent comme vecteur d’empoisonnement du prédicteur de branche. La difficulté réside dans l’alignement temporel : l’interruption doit tomber précisément dans la fenêtre post-neutralisation, qui ne dure que quelques cycles CPU.
Pour surmonter cet obstacle, TONTOU utilise :
- Injection fréquente : multiplication des tentatives pour maximiser la probabilité d’alignement.
- Timers haute résolution : granularité à la nanoseconde via
timerfd. - Empoisonnement actif : manipulation directe du prédicteur via le gestionnaire d’interruption.
- Empoisonnement passif : pollution du RSB (Return Stack Buffer) par les appels/retours imbriqués.
Les chercheurs notent que l’empoisonnement passif étant moins fiable, ils l’ont combiné avec Inception — une attaque antérieure co-développée par Trujillo — pour stabiliser l’exploitation sur AMD Zen 2.
Réponse d’AMD et implications
AMD a publié un avis le 6 août 2026, reconnaissant que le problème d’injection d’interruption « semble associé » à l’implémentation Linux de la mitigation Safe RET. L’avis ne détaille pas encore de correctif matériel — la correction passera vraisemblablement par le noyau Linux.
Les implications dépassent le cas AMD :
- Toute mitigation basée sur la neutralisation est structurellement vulnérable à une attaque de type TONTOU. La fenêtre entre nettoyage et utilisation est inhérente au modèle de programmation asynchrone du noyau.
- Les interruptions sont un vecteur universel : tout CPU qui permet à un utilisateur de déclencher des interruptions matérielles (même indirectement, via des timers) est exposé.
- La correction noyau est prioritaire : les mainteneurs Linux vont devoir repenser l’ordonnancement des interruptions autour des points de neutralisation du prédicteur.
Verdict
TONTOU n’est pas un bug — c’est la conséquence prévisible d’une défense fondée sur une hypothèse de séquencement qui ignorait le parallélisme intrinsèque du matériel moderne.
Si vous gérez des serveurs Linux exposés à du code non privilégié (machines partagées, conteneurs sans isolation matérielle, VPS mutualisés), appliquez les correctifs noyau dès leur publication. Surveillez les avis de votre distribution pour les mises à jour de Safe RET et eIBRS. Le taux d’exfiltration de 5,47 o/s rend l’attaque peu pratique pour du vol de masse, mais un hash /etc/shadow en 18 minutes est suffisant pour compromettre un compte privilégié.
Si vous gérez un parc hétérogène Intel/AMD, notez que l’attaque est validée sur Zen 2 et théoriquement applicable à Intel — la difficulté supplémentaire sur Intel ne constitue pas une protection fiable.
Références
- BleepingComputer, New TONTOU CPU attack bypasses Spectre v2 fixes, leaks Linux password hashes, 6 août 2026 — https://www.bleepingcomputer.com/news/security/new-tontou-cpu-attack-bypasses-spectre-v2-fixes-leaks-linux-password-hashes/
- Black Hat USA 2026, TONTOU: Exploiting the Time-of-Neutralization to Time-of-Use Window in Spectre v2 Defenses, Daniël Trujillo & Mengjia Yan, MIT CSAIL — présentation du 6 août 2026
- AMD Security Advisory, 6 août 2026