Linux: drm/nouveau/dmem: pin VRAM for the whole registered range
What fixes it
- 06c69c64686a31783c8bec6495dc22822d38c4ceLinuxCVE List
- 64ca4cdd1031206424e6455f0ae4fb0560d8f46aLinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
drm/nouveau/dmem: pin VRAM for the whole registered range
Commit c32287471077 ("gpu/drm/nouveau: enable THP support for GPU memory migration") grew the device-private region that nouveau_dmem_chunk_alloc() registers from DMEM_CHUNK_SIZE to DMEM_CHUNK_SIZE * NR_CHUNKS, but left the VRAM buffer object backing that region at DMEM_CHUNK_SIZE.
nouveau_dmem_page_addr() returns chunk->bo->offset plus the page's offset within the registered region, so every page past the first chunk resolves to VRAM outside the buffer object.
Size the buffer object to the region it backs.
Text from CVE List
Affected versions 6
- Linuxaffected: c3228747107705d47c7e9a03598a434a0380cb73 before 06c69c64686a31783c8bec6495dc22822d38c4ceCVE List
- Linuxaffected: c3228747107705d47c7e9a03598a434a0380cb73 before 64ca4cdd1031206424e6455f0ae4fb0560d8f46aCVE List
- Linuxaffected: 6.19CVE List
- Linuxunaffected: all versions before 6.19CVE List
- Linuxunaffected: 7.2.9 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List