CVE-2026-89804

Summary

In the Linux kernel, the following vulnerability has been resolved:

drm/nouveau/dmem: fix mismatched DMA unmap size for large folios

Device-private THP migration maps migration buffers with page_size() and records that length in dma_info->size. For a compound folio page_size() is PAGE_SIZE << order, but two teardown sites still pass a literal PAGE_SIZE to dma_unmap_page():

  • nouveau_dmem_migrate_to_ram() on the success path, and
  • nouveau_dmem_migrate_copy_one() on the copy-error path.

For an order > 0 folio this unmaps less than was mapped, leaking the remainder of the IOMMU/IOVA mapping. The other unmap sites, in nouveau_dmem_migrate_chunk() and nouveau_dmem_evict_chunk(), already use the saved size; use it here too.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxc3228747107705d47c7e9a03598a434a0380cb73 < 4deb29b9d33bfdb3de4d2d9944947ecf77221e42affected
LinuxLinuxc3228747107705d47c7e9a03598a434a0380cb73 < caa1bc2a0a6ca19dcb90bbf88208b0fe2decd66faffected
LinuxLinux6.19affected
LinuxLinux0 < 6.19unaffected
LinuxLinux7.2.5 <= 7.2.*unaffected
LinuxLinux7.3-rc2 <= *unaffected

Weaknesses

References