„`html
Zusammenfassung
CVE-2026-80606 ist eine High-Severity-Sicherheitslücke im Linux Kernel, die die DRM/XE-Komponente (Direct Rendering Manager für Intel Xe GPU) betrifft. Die Schwachstelle tritt spezifisch bei aktivierter Test-Injection-Konfiguration (CONFIG_DRM_XE_USERPTR_INVAL_INJECT=y) auf und führt zu einer Lock-Mode-Verletzung in der GPU-SVM-Notifier-Verwaltung.
Betroffene Systeme
Die Sicherheitslücke betrifft Systeme mit:
- Linux Kernel mit aktiviertem DRM/XE-Treiber
- Intel Xe GPU-Hardware
- Spezifisch: Kernel-Builds mit CONFIG_DRM_XE_USERPTR_INVAL_INJECT aktiviert
- Betroffene Dateien: drivers/gpu/drm/xe/ und drm_gpusvm_helper
Angriffsvektor: Lokal (erfordert lokalen Zugriff auf das System)
Technische Details
Das Problem liegt in der Funktion xe_pt_svm_userptr_pre_commit(), die unter Test-Injection-Bedingungen die notifier_lock für READ-Zugriff hält. Bei Aktivierung der Test-Injection führt dies zu einem Aufruf von vma_check_userptr(), welche wiederum xe_vma_userptr_force_invalidate() aufruft.
Diese Funktion ruft mit dem Flag drm_gpusvm_ctx.in_notifier=true auf, das dem System signalisiert, dass der Aufrufer bereits notifier_lock für WRITE hält. In Realität wird jedoch nur der READ-Modus gehalten, was zu einer fehlgeschlagenen Assertion in drm_gpusvm_unmap_pages() führt.
Die Lösung implementiert neue Helper-Funktionen xe_pt_svm_userptr_notifier_lock() und _unlock(), die in Pre-Commit-Phase für WRITE-Zugriff sorgen, wenn Injection aktiviert ist. Die Assertion-Funktion wird umbenannt zu xe_svm_assert_held_read_or_inject_write().
Empfohlene Massnahmen
- Linux Kernel aktualisieren auf gepatchte Version (ab Commit 80ccbd97ffee8ad2e73167d826fe7be548364365)
- Production-Systeme sind weniger kritisch betroffen, da Test-Injection standardmäßig deaktiviert ist
- Entwicklungs- und Test-Umgebungen sollten Kernel-Update priorisieren
- Bei Bedarf kann CONFIG_DRM_XE_USERPTR_INVAL_INJECT deaktiviert werden
Bewertung
CVSS Score: 7.8 (High)
Trotz hoher CVSS-Bewertung ist das praktische Risiko begrenzt, da die Sicherheitslücke primär in Debug-Konfigurationen auftritt. Production-Builds sind durch das Standard-Verhalten geschützt.
„`