CVE-2022-4139 wurde heute als i915-Kernel-Grafiktreiber-Sicherheitsproblem veröffentlicht, das alle Gen12-Grafiken betrifft – von der integrierten Tigerlake-Grafik bis hin zur neuesten Raptor-Lake-Grafik sowie dem in Entwicklung befindlichen Meteor-Lake-Code und den diskreten GPUs von DG2/Alchemist und Arctic Sound.
Intel hat CVE-2022-4139 als ein falsches GPU-TLB-Flushing-Problem in seinem Linux-Kernel-Grafiktreiber offengelegt. In einigen Fällen wird der Translation Lookaside Buffer (TLB) überhaupt nicht geleert. Zumindest könnte es zu zufälligen Speicherbeschädigungen oder Datenlecks kommen, obwohl noch nicht festgestellt wurde, ob bestimmter Speicher bis zu diesem Zeitpunkt auf betroffene Linux-Kernel-Versionen abzielen könnte. Es wird angenommen, dass alle Versionen von Linux 5.4 bis zu den neuesten Kernel-Versionen von heute betroffen sind, wenn integrierte/diskrete Intel Gen12-Grafiken verwendet werden. Dies läuft jedoch auf ein Intel-Treiberproblem hinaus und nicht auf ein Hardwareproblem selbst.
Die Offenlegung der oss-sec-Liste aus Intel-Notizen:
Im i915-Kernel-Treiber wurde ein falscher GPU-TLB-Flush-Code entdeckt.
In einigen Fällen (Gen12-Hardware mit bestimmten Engine-Typen) wird der TLB der Engine überhaupt nicht geleert. Abhängig davon, ob die GPU hinter einer aktiven IOMMU läuft, gibt es zwei mögliche Szenarien, die aufgrund veralteter TLB-Zuordnung eintreten können: 1. Ohne IOMMU – die GPU kann immer noch auf physischen Speicher zugreifen, der vom Betriebssystem bereits einem anderen Prozess zugewiesen sein könnte. 2. Mit IOMMU – GPU kann auf jeden Speicher zugreifen, wenn der böswillige Prozess in der Lage ist, notwendige IOMMU-Zuordnungen zu erstellen/wiederzuverwenden.
Es ist derzeit nicht bekannt, ob bestimmte Speicher dies könnten Ziel sein, aber zufällige Speicherbeschädigung oder Datenlecks sind eine bekannte Möglichkeit.
Alle integrierten und diskreten Intel-GPUs Gen12 sind betroffen, einschließlich Tiger Lake, Rocket Lake, Alder Lake, DG1, Raptor Lake, DG2, Arctic Sound, Meteor Lake. Fix wurde bereits entwickelt und besteht darin, die Methode zum Schreiben in bestimmte Register zu korrigieren.
Linus Torvalds nur fünf Codezeilen zusammengeführt, um die TLB-Invalidierung auf Intel Gen12-Grafiken für die Video-und Compute-Engines abzumildern.
drm/i915: Behebung der TLB-Invalidierung für Gen12-Video-und Compute-Engines
Bei Gen12-Video-und Compute-Engines sind TLB_INV-Register maskiert-um ein Bit zu ändern, muss das entsprechende Bit in der oberen Hälfte des Registers liegen aktiviert werden, sonst passiert nichts.
Dieser kleine Patch sollte in Kürze auf die stabile Linux-Serie zurückportiert werden.