← All Advisories

Linux Kernel RDMA/ucma Multicast Join Mutex Race Produces a Use-After-Free

Last refreshed2026-10-10

Status: UPDATED  |  Advisory ID: CVE-2026-98253

Key Details

CVECVE-2026-98253
CVSS Score / Version7.8 (High) / CVSS v3.1
Updated2026-10-07
CVSS VectorCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS Proseattack vector is local; attack complexity is low; privileges required is low; user interaction is none; scope is unchanged; confidentiality impact is high; integrity impact is high; availability impact is high.
Affected productsLinux Kernel

Affected Products, Subsystems & Sectors

VendorProductAffected VersionsPatch Status
LinuxLinux Kernel
SubsystemsOT Supporting Infrastructure
SectorsAll Sectors

What to Know

In the Linux kernel, the following vulnerability has been resolved:

RDMA/ucma: Serialize join and leave on copy_to_user failure

rdma_join_multicast() queues RoCE work that later reads the ucma_multicast

through event->param.ud.private_data, then list_add()s the CMA multicast

at the head of id_priv->mc_list. rdma_leave_multicast() matches only by

sockaddr and destroys the first hit.

ucma_process_join() used to drop ctx->mutex after a successful join and

retake it only if copy_to_user() failed. Two concurrent JOIN_MCAST calls

with the same address can therefore insert a second CMA entry before the

first thread's leave. leave then cancels the newer work and the older

worker still dereferences the ucma_multicast that the first thread frees.

Keep ctx->mutex held from rdma_join_multicast() through copy_to_user() and,

on -EFAULT, through rdma_leave_multicast() so leave cannot miss this join.

Do not leave if join itself failed: that path never published this address

on mc_list, and a leave-by-addr would destroy an earlier successful join. (NVD)

What to Do

Monitor Linux's web page for any future patch releases.

References

SourceReference
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2026-98253
CVEhttps://www.cve.org/CVERecord?id=CVE-2026-98253