HIGH Introduced in 6.11
iio DmaFence UAF
CVE-2026-89940
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
KernelScan AI6.9MEDIUM
01Description
In the Linux kernel, the following vulnerability has been resolved: iio: buffer: Tie IIO dma fence lock lifetime to the fence The `iio_dma_fence` implementation currently uses a lock embedded in the `iio_dmabuf_priv`. But the `iio_dma_fence` can outlive the `iio_dmabuf_priv`, which can cause a use-after-free. Tie the lifetime of the lock to the lifetime of the fence by embedding them in the same struct. We can't just hold a reference to the `iio_dmabuf_priv` from the `iio_dma_fence` since `iio_buffer_dmabuf_release()` might sleep and the fence release callback is not allowed to sleep. Note that the `dma_fence` framework now has an internal lock that gets used when the passing `NULL` for `lock` in `dma_fence_init()`, but in order to allow this patch to be backportable use an external lock.
02KernelScan AI Analysis
Risk summary
A use-after-free in the IIO DMABUF interface allows a local user with access to an IIO device to potentially corrupt kernel memory, leading to privilege escalation or denial of service. The vulnerability requires specific hardware (IIO sensors) and access to the IIO buffer interface.
Vulnerability analysis
The IIO DMABUF interface can free a buffer's internal state while a related kernel synchronization object is still active. When that object later runs, it accesses freed memory, causing a use-after-free. The fix gives the synchronization object its own resources so they remain valid for the object's entire lifetime. A local user with access to an IIO device buffer can trigger this through the DMABUF interface.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.12 | 6.11 | 6.12.110 | 6865d79fca17 |
| 6.18 | 6.11 | 6.18.51 | 510497e31be4 |
| 7.2 | 6.11 | 7.2.5 | 8b3e22159018 |
| mainline | 6.11 | 7.3-rc1 | f25ec4627d93 |
| cip/6.12 | 6.11 | 6.12.111-cip32 | 6865d79fca17 |