CVE-2022-4139 a été rendue publique aujourd’hui en tant que problème de sécurité du pilote graphique du noyau i915 affectant tous les graphiques Gen12-des graphiques Tigerlake intégrés aux derniers graphiques Raptor Lake ainsi que le code Meteor Lake en développement et les GPU discrets de DG2/Alchimiste et Arctic Sound.
Intel a divulgué CVE-2022-4139 comme un problème de vidage incorrect du GPU TLB dans son pilote graphique du noyau Linux. Dans certains cas, le tampon de recherche de traduction (TLB) n’est pas vidé du tout. À tout le moins, il pourrait y avoir une corruption aléatoire de la mémoire ou des fuites de données alors qu’il n’a pas encore été déterminé si une mémoire spécifique pourrait être ciblée sur les versions du noyau Linux concernées jusqu’à présent. On pense que toutes les versions de Linux 5.4 jusqu’aux dernières versions du noyau d’aujourd’hui sont affectées lors de l’utilisation de graphiques intégrés/discrets Intel Gen12. Cela équivaut cependant à un problème de pilote Intel et non à un problème matériel lui-même.
La divulgation de la liste oss-sec des notes d’Intel :
Un code de vidage GPU TLB incorrect a été découvert dans le pilote du noyau i915.
Dans certains cas (matériel Gen12 avec des types de moteur spécifiques), le TLB du moteur n’est pas vidé du tout. Selon que le GPU s’exécute derrière un IOMMU actif, deux scénarios possibles peuvent se produire, en raison d’un mappage TLB obsolète : 1. Sans IOMMU-le GPU peut toujours accéder à la mémoire physique qui pourrait déjà être affectée par le système d’exploitation à un processus différent. 2. Avec IOMMU-Le GPU peut accéder à n’importe quelle mémoire, si le processus malveillant est capable de créer/réutiliser les mappages IOMMU nécessaires.
On ne sait pas actuellement si une mémoire spécifique pourrait être ciblé, mais une corruption aléatoire de la mémoire ou des fuites de données sont une possibilité connue.
Tous les GPU Intel intégrés et discrets Gen12 sont concernés, y compris Tiger Lake, Rocket Lake, Alder Lake, DG1, Raptor Lake, DG2, Arctic Sound, Meteor Lake. Le correctif a déjà été développé et consiste à fixer la méthode d’écriture dans des registres spécifiques.
Linus Torvalds vient de fusionné ces cinq lignes de code pour atténuer l’invalidation TLB sur les graphiques Intel Gen12 pour les moteurs vidéo et de calcul.
drm/i915 : correction de l’invalidation TLB pour les moteurs vidéo et de calcul Gen12
Dans le cas des moteurs vidéo et de calcul Gen12, les registres TLB_INV sont masqués-pour modifier un bit, le bit correspondant dans la moitié supérieure du registre doit être activé, sinon rien ne se passe.
Ce petit correctif devrait être rétroporté vers la série stable de Linux dans un court laps de temps.