Linux kernel drm/xe: OA config ioctl leaks sync entries and fence references when the config emit fails
Impact
xe_oa_emit_oa_config() only frees the parsed sync entries and the syncs array on its success path. When it fails early - fence allocation, config buffer allocation or batch submission - xe_oa_config_locked() propagates the error without cleaning up, and the next config ioctl overwrites stream->syncs, so the array and the dma-fence references it holds become unreachable for good. A local process that can open an OA stream and repeatedly drive the config ioctl into that failure path grows unreclaimable kernel memory and pins fences that never drop. The Xe driver is what Intel Data Center GPU Max parts run on, so this lands on the accelerator nodes rather than on workstations; the practical consequence is kernel memory exhaustion on a node that only a reboot clears. The commits describe a leak only - no memory corruption or privilege escalation is claimed, and profiling ioctls are not something most tenant workloads touch.
Who can reach it
Local user on the GPU node holding an open DRM device and able to open an OA stream on it - i.e. a tenant with a GPU container that has the render node passed through. Authentication to the host is required; nothing is reachable over the network.
What to do
Take the stable kernel containing the fix (backported across several stable branches, see the git.kernel.org links) and reboot. Each GPU node has to be drained and rebooted, since the leak lives in the loaded driver and there is no runtime mitigation short of denying OA stream access. No vendor advisory beyond the kernel stable commits exists in the record, and no fixed release version is stated there.
References
Related entries
- Linux drm/amdgpu: UVD H.264 minimum dpb size derived from level rather than the decode messageCVE-2026-80907 · Linux kernel drm/amdgpu (UVD H.264 decode picture buffer size check)Unscored
- Linux kernel amdgpu: unvalidated UVD decode message fields overflow the DPB size calculationCVE-2026-80908 · Linux kernel amdgpu UVD (decode message field validation)Unscored
- Linux kernel amdgpu: recursive reservation lock in devcoredump can self-deadlock the coredump workerCVE-2026-80919 · Linux kernel amdgpu (devcoredump IB capture)Unscored
- Linux kernel nouveau: use-after-free racing the GEM info ioctl against GEM closeCVE-2026-89553 · Linux kernel nouveau GEM (info ioctl VMA lookup)Unscored
- Linux amdgpu: resume force-completes an uninitialized UVD ring on SR-IOV virtual functionsCVE-2026-89827 · Linux kernel amdgpu (UVD ring fence restore under SR-IOV)Unscored
- Linux amdgpu powerplay: malformed VBIOS VoltageObjectInfo table causes infinite loop or heap OOB readCVE-2026-93179 · Linux kernel drm/amd/powerplay (VoltageObjectInfo VBIOS table parser)Unscored
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.