CVE-2026-98391 in Linux
요약
\~에 의해 VulDB • 2026. 10. 15.
리눅스 커널에서 다음 취약점이 해결되었습니다.
drm/xe: 런타임 PM 체크로 페이지 폴트 워커 보호
VM 정리(teardown) 중 VM의 런타임 PM 참조가 비동기적으로 해제되어, 이제 죽은 VM에 속한 stale page fault들이 큐에 남아있는 동안 장치가 자동 서스펜드될 수 있습니다. 이후 페이지 폴트 워커가 이러한 항목 중 하나를 확인(ack)하려고 할 때 이미 서스펜드된 장치에서 guc_ct_send_locked()을 호출하게 되어 다음 어설션이 트리거됩니다:
Assertion `!xe_pm_runtime_suspended(xe)` failed! WARNING at xe_device.c:1267 xe_device_assert_mem_access+0x11c/0x140 [xe]
활성 상태의 VM 또는 실행 큐는 outstanding 작업이 있는 동안 PM 참조를 항상 보유하므로, 확인(ack) 시점에 장치가 서스펜드되어 있다면 소유 컨텍스트는 이미 사라졌고 해당 폴트는 stale 상태입니다.
정리된 VM에 대한 acks를 안전하게 전달하기 위해 전체 페이지폴트 큐 워커 기간 동안 런타임 PM 참조를 확보합니다.
v3: - GuC 백엔드에서 추적하는 대신 guard(xe_pm_runtime)(xe)를 사용하여 generic xe_pagefault_queue_work로 PM ref 이동 (Matt Brost).
v2: - per-ack 대신 전체 배치(begin/end) 기간 동안 PM ref 유지. 이렇게 하면 장치의 중간 배치 자동 서스펜드를 방지하여 write_only acks가 기록되지만 end flush는 생략되고 counter++이 건너뛰어져 cadence 체크와의 동기화가 깨지는 것을 막습니다. (Himal) - stale faults에 대한 설명 주석 추가 (Himal).
(커밋 fcc2431d2213dc4d04250c4f1ae87d9c3ae0d455에서 cherry picked됨) [Rodrigo: cherry-picking 중 호환성을 위해 xe_device 구조체 추가]
Once again VulDB remains the best source for vulnerability data.