Des informations ont été révélées sur une vulnérabilité (CVE-2021-33164) dans les firmwares UEFI, permettant d'exécuter du code en mode SMM (System Management Mode), qui est de priorité supérieure au mode hyperviseur et au niveau zéro de protection, offrant un accès illimité à toute la mémoire système. Cette vulnérabilité, surnommée RingHopper, est liée à la possibilité de mener une attaque par temporisation à l'aide de DMA (Direct Memory Access) pour altérer la mémoire dans le code exécuté au niveau SMM. La présence de cette vulnérabilité a été confirmée dans les firmwares d'Intel, Dell et Insyde Software (il est affirmé que le problème touche 8 fabricants, mais les autres 5 ne sont pas encore divulgués). Les firmwares d'AMD, Phoenix et Toshiba ne sont pas affectés par le problème.
L'exploitation des vulnérabilités peut être réalisée depuis le système d'exploitation, en utilisant des gestionnaires SMI (System Management Interrupt) vulnérables, pour y accéder, des privilèges d'administrateur sont nécessaires. Une attaque peut également être menée en ayant un accès physique lors du premier démarrage, avant l'initialisation du système d'exploitation. Pour bloquer ce problème, il est recommandé aux utilisateurs de Linux de mettre à jour leur firmware à l'aide du service LVFS (Linux Vendor Firmware Service), en utilisant l'utilitaire fwupdmgr (fwupdmgr get-updates ; fwupdmgr update) du paquet fwupd.
La nécessité de disposer de privilèges d'administrateur pour mener l'attaque limite le danger du problème, mais n'empêche pas son utilisation en tant que vulnérabilité de second niveau, pour maintenir sa présence après l'exploitation d'autres vulnérabilités dans le système ou l'application de méthodes d'ingénierie sociale. L'accès au SMM (Ring -2) permet d'exécuter du code à un niveau non contrôlé par le système d'exploitation, ce qui peut être utilisé pour modifier les firmwares et insérer dans le SPI Flash du code malveillant ou des rootkits non détectables par le système d'exploitation, ainsi que pour désactiver la vérification au démarrage (UEFI Secure Boot, Intel BootGuard) et attaquer les hyperviseurs pour contourner les mécanismes de vérification de l'intégrité des environnements virtuels.
Le problème est causé par une condition de concurrence dans le gestionnaire SMI (System Management Interrupt), se produisant à un moment entre la vérification d'accès et l'accès à la SMRAM. Pour déterminer le moment approprié entre l'évaluation de l'état et l'utilisation du résultat de la vérification, une analyse par canaux externes peut être utilisée via DMA. Par conséquent, en raison de la nature asynchrone de l'accès à la SMRAM via DMA, un attaquant peut déterminer le moment adéquat et écraser le contenu de la SMRAM, en utilisant DMA pour contourner l'API du gestionnaire SMI. Les processeurs supportant les mécanismes Intel-VT et Intel VT-d incluent une protection contre les attaques DMA, basée sur l'utilisation de l'IOMMU (Input-Output Memory Management Unit), mais cette protection est efficace pour bloquer les attaques DMA matérielles menées à l'aide de dispositifs préparés par l'attaquant, et ne protège pas contre les attaques via les gestionnaires SMI.
Source : opennet.ru
