KernelScan.io

HIGH Introduced in 6.11

iio DmaFence UAF

CVE-2026-89940

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI6.9MEDIUM

01

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.

02

Engine v0.6.0

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.

Affecteddrivers/iio/industrialio-buffer.c (iio)

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.

03

BranchIntroducedFixed inPatch commit
6.126.116.12.1106865d79fca17
6.186.116.18.51510497e31be4
7.26.117.2.58b3e22159018
mainline6.117.3-rc1f25ec4627d93
cip/6.126.116.12.111-cip326865d79fca17