CVE-2026-80606 in Linux
Résumé
par VulDB • 28/08/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
drm/xe/userptr : Maintenir notifier_lock en écriture sur le chemin de test d'injection
Lorsque CONFIG_DRM_XE_USERPTR_INVAL_INJECT=y est activé, xe_pt_svm_userptr_pre_commit() exécute vma_check_userptr() avec la svm notifier_lock acquise pour une lecture. L'injection de test provoque l'appel à xe_vma_userptr_force_invalidate() par vma_check_userptr(), qui alimente xe_vma_userptr_do_inval() avec drm_gpusvm_ctx.in_notifier=true. Ce drapeau indique à drm_gpusvm_unmap_pages() que l'appelant détient déjà notifier_lock en écriture et se contente de vérifier le mode. Comme l'appelant le détient réellement pour une lecture, la vérification échoue :
WARNING: drivers/gpu/drm/drm_gpusvm.c:1669 at \ drm_gpusvm_unmap_pages+0xd4/0x130 [drm_gpusvm_helper]
Call Trace: xe_vma_userptr_do_inval+0x40d/0xfd0 [xe]
xe_vma_userptr_invalidate_pass1+0x3e6/0x8d0 [xe]
xe_vma_userptr_force_invalidate+0xde/0x290 [xe]
vma_check_userptr.constprop.0+0x1c6/0x220 [xe]
xe_pt_svm_userptr_pre_commit+0x6a3/0xc60 [xe]
... xe_vm_bind_ioctl+0x3a0a/0x4480 [xe]
Acquérir notifier_lock en écriture dans pre-commit lorsque le Kconfig d'injection est activé, via les nouvelles fonctions auxiliaires xe_pt_svm_userptr_notifier_lock()/_unlock(). Renommer xe_svm_assert_held_read() en xe_svm_assert_held_read_or_inject_write() afin qu'elle vérifie le mode correct sous chaque configuration de compilation. Les builds de production (CONFIG_DRM_XE_USERPTR_INVAL_INJECT=n) conservent le comportement existant en mode lecture, bit pour bit.
(cherry picked from commit 80ccbd97ffee8ad2e73167d826fe7be548364365)
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.