Vulnérabilité Reptar affectant les processeurs Intel

Tavis Ormandy, chercheur en sécurité chez Google, a identifié une nouvelle vulnérabilité (CVE-2023-23583) dans les processeurs Intel, nom de code Reptar, qui constitue principalement une menace pour les systèmes cloud exécutant des machines virtuelles de différents utilisateurs. Cette vulnérabilité permet au système de se bloquer ou de planter lorsque certaines opérations sont effectuées sur des systèmes invités non privilégiés. Pour tester vos systèmes, un utilitaire a été publié qui crée les conditions de manifestation de vulnérabilités.

Théoriquement, la vulnérabilité peut être utilisée pour élever les privilèges du troisième au zéro anneau de protection (CPL0) et échapper aux environnements isolés, mais ce scénario n'a pas encore été confirmé dans la pratique en raison des difficultés de débogage au niveau microarchitectural. Un examen interne chez Intel a également montré le potentiel d'exploitation de la vulnérabilité pour élever les privilèges sous certaines conditions.

Selon le chercheur, la vulnérabilité est présente dans les familles de processeurs Intel Ice Lake, Rocket Lake, Tiger Lake, Raptor Lake, Alder Lake et Sapphire Rapids. Le rapport Intel mentionne que le problème apparaît à partir de la 10ème génération (Ice Lake) de processeurs Intel Core et de la troisième génération de processeurs Xeon Scalable, ainsi que dans les processeurs Xeon E/D/W (Ice Lake, Skylake, Haswell, Broadwell). , Skylake, Sapphire Rapids, Emerald Rapids, Cascade Lake, Cooper Lake, Comet Lake, Rocket Lake) et Atom (Apollo Lake, Jasper Lake, Arizona Beach, Alder Lake, Parker Ridge, Snow Ridge, Elkhart Lake et Denverton). La vulnérabilité en question a été corrigée dans la mise à jour du microcode 20231114 d'hier.

La vulnérabilité est due au fait que dans certaines circonstances microarchitecturales, l'exécution de l'instruction « REP MOVSB ​​» est codée avec un préfixe « REX » excessif, ce qui conduit à un comportement indéfini. Le problème a été découvert lors des tests de préfixes redondants, qui en théorie devraient être ignorés, mais qui en pratique ont conduit à des effets étranges, tels que l'ignorance des branches inconditionnelles et l'interruption de la sauvegarde du pointeur dans les instructions xsave et call. Une analyse plus approfondie a montré que l'ajout d'un préfixe redondant à l'instruction "REP MOVSB" provoque une corruption du contenu du tampon ROB (ReOrder Buffer) utilisé pour commander les instructions.

On pense que l'erreur est causée par un calcul incorrect de la taille de l'instruction "MOVSB", ce qui entraîne une violation de l'adressage des instructions écrites dans le tampon ROB après le MOVSB ​​​​​​avec un préfixe excessif et le décalage du pointeur d’instruction. Une telle désynchronisation peut se limiter à une perturbation des calculs intermédiaires avec restauration ultérieure de l'état intégral. Mais si vous plantez plusieurs cœurs ou threads SMT en même temps, vous pouvez endommager suffisamment l’état microarchitectural pour provoquer un crash.

Source: opennet.ru

Ajouter un commentaire