GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel dma-direct: dma_direct_alloc_pages() treats a CPU address as a struct page pointer

CVSS 8.8CVE-2026-89995Kernel, userspace & hypervisorcurated

Impact

A refactor changed dma_direct_alloc_from_pool() to return the CPU virtual address, which suits dma_direct_alloc() but not dma_direct_alloc_pages(), whose caller expects a struct page *. The second caller therefore takes a virtual address and uses it as a page pointer, corrupting whatever it touches. This sits in the core DMA allocation path that accelerator and fabric drivers use for coherent buffers, so it is reachable on any node whose drivers take the atomic-pool path - notably systems where the DMA pool is used under memory pressure or in atomic context. The fix restores the struct page * return and passes the CPU address back through an out-parameter.

Who can reach it

Local and driver-mediated: exercised by kernel drivers calling dma_alloc_pages() on a configuration that routes to the atomic DMA pool. Not directly reachable by an unprivileged tenant; exposure depends on which drivers a node loads.

What to do

Pick up the linked stable commits or a patched distribution kernel and reboot each node. There is no configuration toggle; the affected code is in the core DMA layer.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.