Zenbleed, une vulnérabilité qui affecte les processeurs AMD Zen 2

vulnérabilité

Si elles sont exploitées, ces failles peuvent permettre aux attaquants d'obtenir un accès non autorisé à des informations sensibles ou de causer des problèmes en général.

Il y a quelques jours un Chercheur de l'équipe de sécurité de Google, libéré les nouvelles que je détecte une vulnérabilité (déjà répertorié sous CVE-2023-20593) sur les processeurs AMD basé sur la microarchitecture Zen2 qui peut être utilisée pour détecter les registres pendant que d'autres processus s'exécutent sur le même cœur de processeur.

Cette vulnérabilité est considérée comme importante, puisque l'attaque peut être menée à partir de machines virtuelles et d'environnements isolés. Essentiellement, le problème ressemble aux vulnérabilités classiques d'utilisation après libération causées par l'accès à la mémoire après sa libération.

Le problème survient avec AMD Ryzen 3000, Ryzen PRO 3000, Ryzen Threadripper 3000, Ryzen 4000 avec Radeon Graphics, Ryzen PRO 4000, Ryzen 5000 avec Radeon Graphics, Ryzen 7020 avec Radeon Graphics et série de processeurs EPYC7002.

A propos de la vulnérabilité, elle est mentionnée car dans les processeurs, pour stocker le contenu des registres, un fichier de registre (RF, Register File) est utilisé, qui est un agencement qui est partagé dans toutes les tâches d'un même noyau. CPU. La table d'allocation d'enregistrements (RAT) est chargée de joindre des enregistrements avec des noms spécifiques aux ressources du fichier journal. Dans ce cas, la valeur zéro est stockée dans le registre non pas en stockant une valeur vide dans le fichier de registre, mais en définissant le drapeau z-bit dans la table RAT.

La vulnérabilité est due au fait que si le bit z est défini lors de l'exécution spéculative d'instructions, il ne suffit pas de simplement le réinitialiser en cas de mauvaise prédiction de branche, car l'espace dans le fichier journal peut être réalloué à partir d'une exécution spéculative.

L'effet révélé se produit lorsqu'un enregistrement est simultanément renommé, une instruction pour laquelle l'optimisation de jointure est appliquée est utilisée, et une instruction vectorielle VZEROUPPER est exécutée de manière spéculative qui définit le bit z et libère les ressources du fichier journal. Si la prédiction de branchement échoue et que l'opération spéculative VZEROUPPER est annulée, le contenu des registres vectoriels peut être corrompu, car le bit z est annulé, mais la ressource libérée reste non rejetée.

Grâce à la manipulation de l'instruction VZEROUPPER, il est possible d'obtenir une fuite contrôlée des données traitées dans les registres vectoriels YMM utilisés dans les modes AVX (Advanced Vector Extensions) et SSE (Streaming SIMD Extensions). Ces registres sont activement utilisés dans les fonctions de copie de mémoire et de traitement de chaînes, par exemple dans la bibliothèque Glibc, ils sont utilisés dans les fonctions memcpy, strcmp et strlen.

Pour démontrer la vulnérabilité, nom de code Zenbleed, un exploit prototype a été préparé qui permet à un utilisateur non privilégié de déterminer les données traitées dans les instructions AES-NI ou REP-MOVS (généralement utilisées dans la fonction memcpy), qui peuvent être utilisées pour reconstruire des clés de chiffrement et des mots de passe utilisateur, traités dans d'autres processus, y compris privilégiés. La performance de fuite de données de l'exploit est d'environ 30 Ko par seconde.

Vulnérabilité corrigé dans le niveau de mise à jour du microcode. Pour Linux un patch a été préparé pour télécharger le microcode corrigé. Bien que s'il n'est pas possible de mettre à jour le microcode, il existe une solution de contournement pour bloquer la vulnérabilité, ce qui entraîne une diminution des performances.

Pour cela, le bit de contrôle DE_CFG[9] doit être configuré dans la CPU et pour cela, dans un terminal, il faut taper la commande suivante :

Il convient de mentionner que la désactivation du mode SMT ne bloque pas la vulnérabilité et que le correctif pour bloquer la vulnérabilité a été implémenté dans les mises à jour du noyau 6.4.6, 6.1.41, 5.15.122, 5.10.187, 5.4.250 et 4.19.289.

Pour intéressé par le suivi des informations sur les vulnérabilités dans les différentes distributions, ils peuvent le faire dans les pages suivantes : DebianUbuntuGentooRHELSUSEFedoravoûteOpenBSDFreeBSDNetBSD.

Enfin, si vous souhaitez en savoir plus, vous pouvez consulter les détails dans la lien suivant


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.