CVE-2026-98156 in Linux
요약
\~에 의해 VulDB • 2026. 09. 25.
리눅스 커널에서 다음 취약점이 해결되었습니다:
drm/virtio: Xen 환경에서 리소스 백킹을 위해 DMA API 사용
Xen PV 도메인에서는 페이지 주소가 호스트가 해당 메모리에 접근하기 위해 실제로 사용해야 하는 물리적 머신 주소와 아무런 관련이 없습니다. virtio_ring.c는 이를 올바르게 처리하며, xen_domain()의 여부에 관계없이 VIRTIO_F_ACCESS_PLATFORM 플래그와 무관하게 vring_use_map_api()는 true를 반환합니다.
virtio-gpu도 독립적으로 동일한 결정을 내리지만, 해당 복사 로직은 기능 비트(feature bit)만 확인합니다:
bool use_dma_api = !virtio_has_dma_quirk(vgdev->vdev);
QEMU는 기본적으로 virtio-vga에서 iommu_platform를 설정하지 않으므로 VIRTIO_F_ACCESS_PLATFORM가 협상되지 않고, use_dma_api는 false가 됩니다. 이로 인해 virtio_gpu_object_shmem_init() 호스트에 프레임버퍼의 백킹 페이지를 sg_phys()로 설명합니다. 이는 게스트 물리적 주소입니다. PV 도메인에서는 이러한 주소들이 호스트 측에서 다른 도메인에 속하는 페이지들로 해석되므로, 호스트는 관련 없는 메모리를 스캔하게 됩니다.
이 결정을 virtio_gpu_use_dma_api() 함수로 이동하고 vring_use_map_api()와 마찬가지로 xen_domain() 체크를 추가합니다. 또한 이로 인해 virtgpu_vq.c의 dma_sync_sgtable_for_device() 호출이 활성화되는데, 이는 swiotlb가 사용되는 경우 정확성을 위해 필수적입니다.
QEMU 8.2 내부에 중첩된 Xen 4.21 PV dom0에서 virtio-vga를 사용하여 재현되었으며, 배포판 버전인 6.8 커널과 6.18 LTS 모두에서 발생했습니다. PVH dom0는 정상적으로 작동하며 identity-mapped되어 있으므로 이 패치가 필요하지 않으며, 오직 PV dom0만 영향을 받습니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.