Skip to main content
← All vulnerabilities
CVE-2026-89742

rapidio: mport_cdev: fix use-after-free in dma_req_free()

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109, and 2 more
None on Exploit-DB, Metasploit or GitHub

Summary

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.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From e8de370188d098bb49483c287b44925957c3c9b6 · fixed in 00c5ed913b0dc563fbeb8a97ea8916c03bbbbf6a; From e8de370188d098bb49483c287b44925957c3c9b6 · fixed in fc79c07cdcde02c5b17633d78777de6ac2c14b29; From e8de370188d098bb49483c287b44925957c3c9b6 · fixed in 26ccfe7d69e27b0d933ae0a64a23a0cb9b9a85a6; From e8de370188d098bb49483c287b44925957c3c9b6 · fixed in bd8881c24a9520f9c3d3e855d866197f63e471a7; From e8de370188d098bb49483c287b44925957c3c9b6 · fixed in 9a9929ec875ff20922c90c96fd544ae8a2a61a8d; From e8de370188d098bb49483c287b44925957c3c9b6 · fixed in e6e925cc1f8067c65c7bec3da50a0ead3b3ef4e0; From e8de370188d098bb49483c287b44925957c3c9b6 · fixed in 211c68d817a3d9dc14c0026a59da7cac30f8147e; From e8de370188d098bb49483c287b44925957c3c9b6 · fixed in 5cbef379a94b161726c5f504598bf4791d45cedc

  • Linux Linux

    4.6

  • KernelLinux

    From 4.6.0 · fixed in 5.10.270; From 5.11.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.109; From 6.13.0 · fixed in 6.18.50; From 6.19.0 · fixed in 7.2.4

References 8

git.kernel.org