Retbleed : une faille Spectre qui déjoue les défenses établies

Retbleed Spectre Intel AMD

Lumière est fait sur Retbleed, qui contourne les protections mises en place face aux failles de type Spectre (manipulation de l’exécution spéculative sur les CPU).

En a-t-on fini avec Spectre ? Pas vraiment, à en croire deux chercheurs de l’École polytechnique fédérale de Zurich. En tout cas pas avec l’une des variantes qui composent cette famille de failles touchant les mécanismes d’exécution spéculative des processeurs.

Cette variante est dite Spectre-BTI (branch target injection). Dans les grandes lignes, elle exploite les branchements indirects pour contrôler l’exécution spéculative. Face aux attaques de ce type, diverses défenses ont émergé. Entre autres, l’isolation de la table des pages du noyau et la désactivation d’eBPF sans privilèges.

Une méthode de contournement s’est imposée de facto : retpoline. Son principe : remplacer les instructions de branchement direct – vulnérables, donc – par des instructions de retour, censées être protégées. AMD, en particulier, recommande de l’implémenter ; cependant pas de la même manière que sur les processeurs Intel.

La faille qu’ont découverte les deux chercheurs déjoue retpoline. Aussi l’ont-ils baptisée Retbleed. Elle affecte autant des processeurs AMD (CVE-2022-29900) qu’Intel (CVE-2022-29901). Mais différemment. Sur les premiers, l’efficacité dépend notamment de la destination du branchement précédent. Sur les seconds, de la profondeur de la pile d’appel.

Un élément en particulier rend Retbleed exploitable. En l’occurrence, le fait que dans certaines conditions, les instructions de retour peuvent se comporter comme des branchements indirects. Au final, avec les bons outils au sein du noyau, et assez de contrôle sur les registres et/ou la mémoire, on peut prétendre exfiltrer des données à partir d’un processus sans privilèges, en espace utilisateur.

tableau performances leak

Comme avec toutes les failles de type Spectre, le débit d’exfiltration reste relativement faible. Les chercheurs insistent sur deux valeurs : 219 octets/seconde sur un CPU Intel Coffee Lake et 3,9 ko/s sur un CPU AMD avec cœurs Zen 2.

Intel et AMD sont officiellement au courant de l’existence de Retbleed depuis le mois de février.

Photo d’illustration © ueddy.com via VisualHunt / CC BY-NC-SA