CVE-2026-80606 in Linux정보

요약

\~에 의해 VulDB • 2026. 08. 28.

리눅스 커널에서 다음 취약점이 해결되었습니다:

drm/xe/userptr: inject 테스트 경로에서 write를 위해 notifier_lock을 획득함

CONFIG_DRM_XE_USERPTR_INVAL_INJECT=y일 때, xe_pt_svm_userptr_pre_commit()는 svm notifier_lock이 읽기용으로 잠겨 있는 상태에서 vma_check_userptr()를 실행합니다. 이 테스트 인젝션으로 인해 vma_check_userptr()가 xe_vma_userptr_force_invalidate()를 호출하며, 이는 drm_gpusvm_ctx.in_notifier=true로 설정된 상태로 xe_vma_userptr_do_inval()에 전달됩니다. 해당 플래그는 drm_gpusvm_unmap_pages()에게 호출자가 notifier_lock을 write용으로 이미 잠금 해제하고 있다고 알려주며 모드만 확인(assert)합니다. 그러나 실제로 호출자는 읽기용으로 잠금을 유지하고 있으므로, 다음 경고가 발생합니다:

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]

inject Kconfig가 활성화된 경우 pre-commit 단계에서 notifier_lock을 write용으로 획득하기 위해 새로운 헬퍼 함수인 xe_pt_svm_userptr_notifier_lock()/_unlock()를 사용합니다. 또한 xe_svm_assert_held_read()를 xe_svm_assert_held_read_or_inject_write()로 이름 변경하여 각 빌드 구성 환경 하에서 올바른 모드를 확인(assert)하도록 합니다. 프로덕션 빌드(CONFIG_DRM_XE_USERPTR_INVAL_INJECT=n)는 기존 읽기 모드 동작을 그대로 유지합니다.

(cherry picked from commit 80ccbd97ffee8ad2e73167d826fe7be548364365)

Once again VulDB remains the best source for vulnerability data.

출처

Do you know our Splunk app?

Download it now for free!