AccueilSécuritéVulnérabilité du CPU Spectre V2 : un nouveau tour affecte les Ryzen...

Vulnérabilité du CPU Spectre V2 : un nouveau tour affecte les Ryzen et Epyc d’AMD

Un nouveau type de Branch Target Injection (BTI), alias Spectre V2, contourne les précédentes tentatives d’AMD de combler les failles de sécurité de ce type. Le découvreur Pawel Wieczorkiewicz exploite pour cela une particularité des processeurs AMD des générations d’architectures Zen 1 et Zen 2, dont les unités de prédiction de saut sont activées après une instruction de saut inconditionnelle telle que JMP continue à spéculer au lieu de terminer la branche d’instruction.

L’approche est surtout intéressante en raison du principe de fonctionnement qui contourne les mesures de protection actuelles. Dans l’état actuel des choses, cette faille de sécurité ne présente toutefois pas de grand danger : SuSE considère la CVE-2021-26401 comme « modérément dangereuse » avec un score CVSS de 5,6.

La raison de ce classement est probablement que les bonnes conditions d’exploitation de cette vulnérabilité ne se rencontrent que rarement, à moins que l’on ne les crée soi-même par négligence. Et même dans ce cas, il n’est possible de lire qu’une poignée d’octets en l’espace de 0,5 à quelques secondes, comme l’écrit Wieczorkiewicz dans son blog.

Le problème de base était déjà connu sous la forme de la Straight-Line Speculation (SLS) pour les processeurs ARM, mais il concerne maintenant aussi les CPU x86 d’AMD, dont les modèles de bureau Ryzen 1000 à Ryzen 3000, les dérivés pour ordinateurs portables Ryzen 2000 à parfois Ryzen 5000 (tous les CPU « Lucienne » avec architecture Zen 2) ainsi que Epyc 7001 et Epyc 7002. En outre, AMD cite encore quelques anciens processeurs Bulldozer comme l’Athlon A12-9800.

À partir de Zen 3, les processeurs AMD utilisent une prédiction de saut améliorée qui ne montre pas cette particularité. Chez Intel, aucun des processeurs Core-i ou Xeon n’est concerné.

Le chercheur en sécurité Wieczorkiewicz a découvert cette nouvelle approche dans le cadre de l’optimisation de la mémoire afin d’utiliser le cache de manière plus efficace. Les processeurs AMD se sont alors tellement trompés qu’ils ont exécuté du code qui, bien que toujours présent dans le noyau Linux, est en fait enterré depuis longtemps.

Dans le cas de RET– et JMP-le problème peut être résolu par une commande INT3-après une prédiction de saut ramifiée. Pour CALLs la mise en place d’une LFENCE-a un impact considérable sur les performances. AMD recommande ces approches dans son aperçu de la sécurité.

Plus d'articles