Katalog CVE

CVE-2026-98156

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux sterownik drm/virtio (virtio-gpu) na domenach Xen PV błędnie decyduje o użyciu DMA API, patrząc tylko na bit VIRTIO_F_ACCESS_PLATFORM. Ponieważ QEMU domyślnie nie ustawia iommu_platform dla virtio-vga, funkcja virtio_gpu_object_shmem_init() opisuje strony bufora ramki hostowi za pomocą sg_phys() używając adresów fizycznych gościa, które w domenie PV wskazują na strony należące do innej domeny.

Ocena ryzyka

Host może skanować niepowiązaną pamięć innej domeny, co prowadzi do wycieku danych lub nieprawidłowego działania grafiki. Problem dotyczy wyłącznie domen PV dom0, domeny PVH dom0 są bezpieczne.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę przenoszącą decyzję do virtio_gpu_use_dma_api() z kontrolą xen_domain(). Unikaj uruchamiania virtio-vga w domenie Xen PV dom0 bez tej poprawki.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

In the Linux kernel, the following vulnerability has been resolved: drm/virtio: use the DMA API for resource backing on Xen On a Xen PV domain page addresses bear no relation to the real machine addresses the host would have to use to reach it. virtio_ring.c handles this correctly, vring_use_map_api() returns true for any xen_domain() regardless of VIRTIO_F_ACCESS_PLATFORM. virtio-gpu makes the same decision independently, but its copy looks only at the feature bit: bool use_dma_api = !virtio_has_dma_quirk(vgdev->vdev); QEMU does not set iommu_platform on virtio-vga by default, so VIRTIO_F_ACCESS_PLATFORM is not negotiated, use_dma_api is false, and virtio_gpu_object_shmem_init() describes the framebuffer's backing pages to the host with sg_phys(). Those are guest-physical addresses. In a PV domain they resolve, on the host side, to pages belonging to some other domain, so the host scans out unrelated memory. Move the decision into virtio_gpu_use_dma_api() and give it the xen_domain() check, like vring_use_map_api() has. This additionally enables the dma_sync_sgtable_for_device() calls in virtgpu_vq.c, which are required for correctness whenever swiotlb is in play. Reproduced with a Xen 4.21 PV dom0 nested inside QEMU 8.2 with virtio-vga, on both a distro 6.8 kernel and 6.18 LTS. A PVH dom0 works fine and doesn't need this fix because it is identity-mapped, only PV dom0s are affected.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS