KernelScan.io

HIGH Introduced in 4.6

rapidio DmaReq UAF

CVE-2026-89742

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.7MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: rapidio: mport_cdev: fix use-after-free in dma_req_free() dma_req_free() acquires buf_mutex through req->map, drops the mapping reference with kref_put(), and then dereferences req->map again to unlock the mutex. If kref_put() drops the last reference, mport_release_mapping() frees the mapping, and the subsequent mutex_unlock() dereferences a freed object. This is a use-after-free. Fix this by caching map and md before kref_put(), clearing req->map while holding buf_mutex, and using the cached md for mutex unlocking. The bug is reachable from userspace via the RapidIO mport character device interface.

02

Engine v0.6.0

Risk summary

A use-after-free in the RapidIO mport character device driver allows a local root user with access to the device node to corrupt kernel memory, potentially leading to privilege escalation or denial of service. The vulnerability requires RapidIO hardware to be present and the mport_cdev module loaded, which is typical only in industrial or embedded systems. Exploitation could result in arbitrary kernel read/write access or a system crash.

Affecteddrivers/rapidio/devices/rio_mport_cdev.c (rapidio mport character device)

Vulnerability analysis

When freeing a DMA request through the RapidIO mport character device, the cleanup code drops a reference count on a mapping object and then attempts to unlock a mutex by dereferencing that same mapping object. If the reference count drop was the last one, the mapping is freed before the mutex unlock occurs, causing the unlock to access freed memory. The fix caches the mapping and device pointers in local variables before dropping the reference, so the mutex can be safely unlocked even after the mapping is freed. The bug is reachable from userspace via the RapidIO mport character device interface, which requires root-level access to the device node and the presence of RapidIO hardware in the system.

03

BranchIntroducedFixed inPatch commit
5.104.65.10.27000c5ed913b0d
5.154.65.15.221fc79c07cdcde
6.14.66.1.18826ccfe7d69e2
6.124.66.12.1099a9929ec875f
6.184.66.18.50e6e925cc1f80
6.64.66.6.157bd8881c24a95
7.24.67.2.4211c68d817a3
mainline4.67.35cbef379a94b
cip/5.104.65.10.271-cip7800c5ed913b0d
cip/6.14.66.1.189-cip6126ccfe7d69e2
cip/6.1-rt4.66.1.189-cip61-rt3226ccfe7d69e2
cip/6.124.66.12.111-cip329a9929ec875f

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Fixed in 5.10.271-cip78
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)