CVE-2026-72095
CVE-2026-72095 is a kernel memory safety issue in the DMA fence subsystem's `dma_fence_dedup_array()` function that exposes an uninitialized fence pointer through amdgpu's user queue wait path. The vulnerability stems from a fundamental design failure: the subsystem documented one return value for zero-input cases but implemented a different one, then relied on a single 'protected by caller' fast path in one call site as validation that the implementation was acceptable. The function's kernel-doc states it returns the 'number of unique fences,' which for zero input should be 0. The implementation returned 1. The fast path in `__dma_fence_unwrap_merge()` bails out early on this 1, creating the illusion of safety. But amdgpu's `amdgpu_userq_wait_*()` functions reach the dedup function through a different code path that doesn't pass through that protective fast path, passing zero-length fence arrays directly to code that dereferences an uninitialized slot. The patch—returning 0 immediately on zero input—is correct at the utility layer, but examine whether it fully closes the gap. If amdgpu's caller logic was written against the actual behavior (returning 1), patching the function to return 0 may shift the crash surface rather than eliminate it. The actual risk isn't just the CVE—it's the pattern of 'protected by caller' rationalization that let this bypass go undetected for years while the fast path served as its own defense. The EPSS score of 0.00161 reflects only the disclosed surface; the amdgpu path was unknown at disclosure, meaning the true exposure window was longer than the metric captures. Audit your kernel drivers for similar patterns: shared utility functions where a fast path in one caller is assumed to protect all others, documented contracts that diverged from implementation through refactoring, and 'protected by caller' language that rationalizes deferred defensive implementation. The fix pays down technical debt, but only if every caller's assumptions are audited in parallel.
Reviewed through automated stages and approved by a human before publication.