Aller au contenu
InYourGeek
visiteur@inyourgeek — console
↹ compléter↑↓ historique⏎ ouvrirhelp
EN
Hardware· 3 min de lecture

Spectre v2 : une variante extrait le hash root de Linux en 3 minutes

Des chercheurs de VUsec et de la Scuola Superiore Sant'Anna ont récupéré le hash du mot de passe root d'une machine Linux en trois à cinq minutes, avec du code non privilégié. Les correctifs noyau sont là, la cause profonde reste dans le silicium.

Dans une allée sombre de salle serveurs, des mains gantées vues de dos s'avancent entre deux baies vers un châssis ouvert éclairé d'une lumière ambrée ; derrière elles, un double flou des mêmes mains reproduit le geste avec un léger décalage.

L’hypothèse de 2018 avait tort

Depuis 2018 et la première salve Spectre, une hypothèse confortable s’était installée : ce type d’attaque par exécution transitoire ne serait pas praticable contre les moteurs JIT, parce que le code auto-modifiant (SMC) qui sert de base à la génération dynamique de code rendait l’exercice irréaliste. C’est ce que Cristiano Guiffrida, de VUSec, a rappelé à Bleeping Computer le 29 septembre 2026 : la démonstration inverse compte autant que la fuite elle-même. Elle s’appelle BTR, pour Branch Target Reuse.

Le mécanisme tient en une phrase désagréable. Quand un moteur JIT libère un morceau de code compilé et en pose un autre à la même adresse, le processeur, lui, se souvient encore de l’ancienne cible de branchement indirect. Le prédicteur et l’état réel du code ne sont plus synchronisés, et dans cette fenêtre le CPU exécute spéculativement le nouveau code à partir d’une cible périmée. Le nouveau code, c’est l’attaquant qui l’a écrit.

Huit octets par seconde

Les chercheurs de VUsec (VU Amsterdam) et de la Scuola Superiore Sant’Anna ont monté l’exploit de bout en bout sur Linux avec des programmes cBPF classiques non privilégiés : entraîner la prédiction, libérer le programme, en placer un autre dans la mémoire réutilisée. La cible périmée fait exécuter au processeur des instructions fabriquées à un décalage désaligné, l’accès mémoire spéculatif laisse une trace mesurable dans le cache, et la donnée se relit octet par octet.

Appliqué à un processus su en cours d’exécution, ça donne un débit de huit octets par seconde, et cette phrase des chercheurs : « We evaluated the end-to-end exploit on both Raptor Cove and Lion Cove, and leaked the password within 3 and 5 minutes on average, respectively ». L’article technique publie deux exploits contre cBPF : un sur la configuration par défaut, un contre le durcissement par constant blinding — ce dernier encode les instructions de l’attaquant dans des décalages de saut et récupère quand même le hash en moins de cinq minutes.

Un hash n’est pas un mot de passe en clair. Il faut ensuite le casser hors ligne ou en louant du calcul, et le résultat dépend de l’algorithme de hachage et de la solidité du mot de passe. Le problème est déplacé d’un cran, pas annulé.

Ce que ça change quand la machine n’est pas que la vôtre

Pour un serveur partagé, le chiffre à retenir n’est pas « trois minutes », c’est le mot « non privilégié ». L’exploit démontré part de code ordinaire, sans droits particuliers, exécuté sur la machine visée — c’est-à-dire exactement ce qu’un hébergement mutualisé vend à ses clients.

Les deux autres moteurs examinés vont dans le même sens sans aller jusqu’au bout. Dans SpiderMonkey, le moteur JavaScript de Firefox, la preuve de concept montre que les prédictions périmées survivent à la réutilisation du code, mais pas d’exploit navigateur complet. Dans GraalVM, les chercheurs ont trouvé le moyen de sauter spéculativement un contrôle de bac à sable, sauf que l’activité du moteur effaçait les prédictions avant la fin de l’attaque. La brique est posée ; le reste est du travail d’ingénierie.

Les correctifs, et le reste

Les éditeurs et fondeurs concernés ont été prévenus, deux identifiants ont été attribués — CVE-2026-64507 et CVE-2026-64508 — et les correctifs sont déjà fusionnés dans le noyau Linux. La recommandation tient en deux gestes : appliquer les mises à jour système et firmware, et passer au dernier noyau.

Sur le fond, VUSec est nettement moins rassurant : la prédiction de branchement indirect est consubstantielle aux processeurs modernes, aucun mécanisme actuel ne maintient le prédicteur en phase avec l’état du code, et le comportement a été confirmé sur tous les processeurs testés — Intel, AMD et Arm confondus. « No current CPU has a mechanism to keep the two in sync, so until vendors add one, your CPU is vulnerable. »

Huit ans après Spectre, le prédicteur de branchement reste ce collègue serviable qui garde en mémoire une adresse dont plus personne ne veut. Le correctif noyau, lui, s’installe ce soir ; la remise en phase du silicium attendra une prochaine génération.

Sources (1)

PartagerXLinkedInFacebookBluesky

Article rédigé avec l'assistance d'une IA à partir des sources citées, puis relu et validé avant publication par Sébastien Soulier.