Les chercheurs de la société IOActive ont découvert une vulnérabilité (CVE-2023-31315) dans les processeurs AMD, qui permet, lors d'un accès local privilégié au système, de modifier la configuration SMM (System Management Mode, Ring -2), même si le mécanisme de verrouillage SMM (SMM Lock) est activé, et donne potentiellement la possibilité d'exécuter du code au niveau SMM. Le niveau SMM, qui a une priorité plus élevée que le mode hyperviseur et le niveau zéro de protection, permet d'accéder sans restriction à toute la mémoire système et peut être utilisé pour contrôler le système d'exploitation.
La vulnérabilité, qui porte le nom de code Sinkclose, est causée par une vérification incorrecte des enregistrements spécifiques au modèle (MSR, Model Specific Register). La SMM se voit attribuer une zone de pages physiques de mémoire, à laquelle l'accès est bloqué au niveau du contrôleur de mémoire. La vulnérabilité révélée permet de contourner ce blocage par le biais de manipulations avec certains enregistrements MSR, dont l'écriture n'était pas interdite malgré l'activation du mode SMM Lock.
L'exploitation de la vulnérabilité peut être réalisée depuis le niveau zéro de protection, sur lequel fonctionne le noyau du système d'exploitation, et peut être utilisée, par exemple, pour maintenir sa présence après l'exploitation d'autres vulnérabilités dans le système ou l'utilisation de méthodes d'ingénierie sociale. Le système d'exploitation n'a pas la capacité de suivre et de contrôler l'exécution du code au niveau SMM, ce qui peut être utilisé pour modifier des firmwares et placer du code malveillant caché ou des rootkits, non détectés par le système d'exploitation, ainsi que pour désactiver la vérification au moment du chargement et attaquer les hyperviseurs pour contourner les mécanismes de vérification de l'intégrité des environnements virtuels.
La vulnérabilité se manifeste presque sur toutes les puces AMD produites depuis 2006, y compris les séries de processeurs AMD EPYC (1-4 générations), Ryzen (R1000, R2000, 3000-8000, V1000, V2000, V3000), Athlon 3000 et Threadripper PRO. Des mises à jour de microcode pour bloquer la vulnérabilité ont déjà été publiées pour les séries de CPU EPYC et Ryzen mobiles et de bureau. Pour les modèles de CPU embarqués, la mise à jour est prévue pour octobre. La seule manière de supprimer le code malveillant inséré via une attaque SMM est de nettoyer la mémoire à l'aide d'un programmateur SPI Flash physiquement connecté.
Source : opennet.ru
