PT-2026-90224 · Linux · Linux

CVE-2026-89508

·

Published

2026-09-11

·

Updated

2026-09-11

None

No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
In the Linux kernel, the following vulnerability has been resolved:
RDMA/ucma: Lock the handler in ucma set ib path()
ucma set ib path() calls ucma event handler() straight from the write() path, without the handler lock that keeps ctx->file stable while a uevent is queued. The handler re-reads ctx->file for every dereference:
mutex lock(&ctx->file->mut);			/* file A */
list add tail(&uevent->list, &ctx->file->event list);	/* file B */
mutex unlock(&ctx->file->mut);			/* file B */
wake up interruptible(&ctx->file->poll wait);	/* file B */
A concurrent ucma migrate id() reassigns ctx->file while the SET OPTION caller sleeps in mutex lock(), so the list add tail() lands on file B's event list while only file A's mutex is held, racing every other user of that list:
BUG: KASAN: slab-use-after-free in list add valid or report+0x1aa/0x1c0 Read of size 8 at addr ffff888153c6a418 by task poc corr/486 Call Trace: list add valid or report+0x1aa/0x1c0 ucma event handler+0x1be/0xc00 ucma set ib path+0x45e/0x710 ucma set option+0x32e/0x590 ucma write+0x1f9/0x330 Allocated by task 505: ucma write cm event+0x1a1/0x660 Freed by task 505: kfree+0x1da/0x4c0 ucma get event+0x5d5/0x7e0
The freed object is a ucma event that another thread dequeued from file B's list under file B's mutex. File A's mut is left held on top of that, wedging its next writer in uninterruptible sleep.
This path needs a bound and address-resolved cm id, so it requires an RDMA device to be present.
Take the handler lock around the call.
Found an issue in the description? Have something to add? Feel free to write us 👾

Related Identifiers

CVE-2026-89508

Affected Products

Linux