CVE-2026-89507
Description
In the Linux kernel, the following vulnerability has been resolved: RDMA/ucma: Lock the handler in ucma_write_cm_event() ctx->file may only be changed under the handler lock and the xa_lock, which is what stops uevents being queued for a ctx while ucma_migrate_id() moves it to another file. The CM core takes that lock before invoking ucma_event_handler(), but the write() paths that queue uevents themselves do not. ucma_write_cm_event() re-reads ctx->file for each of its four dereferences, so ucma_migrate_id() can swap it mid-sequence: 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 */ The window is the mutex_lock() itself: the writer sleeps in it while the migration reassigns ctx->file. The list_add_tail() then runs on file B's event_list holding only file A's mutex: list_add corruption. prev->next should be next (ffff888101320f30), but was ffff88814a08c418. (prev=ffff88814a075c18). kernel BUG at lib/list_debug.c:32! Call Trace: ucma_write_cm_event+0x36e/0x5e0 and file A's mut is left held forever, wedging its next writer in D state. The uevent is also stranded on a list ucma_cleanup_ctx_events() will not walk, so it outlives its context. /dev/infiniband/rdma_cm is 0666 and no RDMA device is involved, so an unprivileged user reaches all of this. Take the handler lock, as ucma_cleanup_mc_events() does; ctx->cm_id is pinned by the ucma_get_ctx() reference.
How to fix
- Linux Linux4f8bb11dd2ff365e7cff1c9964ab4607292d364e, 0be1955040a2eceed0ecfc387fdc92305411d273, f4cc21c6a8e9d392871477f9fd98d68e5ad80272 or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| Linux Linux | a3c9d0fcd3715541bbf97da2ddde9d032e2fe6d5 ≤ v < 4f8bb11dd2ff365e7cff1c9964ab4607292d364e, a3c9d0fcd3715541bbf97da2ddde9d032e2fe6d5 ≤ v < 0be1955040a2eceed0ecfc387fdc92305411d273, a3c9d0fcd3715541bbf97da2ddde9d032e2fe6d5 ≤ v < f4cc21c6a8e9d392871477f9fd98d68e5ad80272, 6.18 | 4f8bb11dd2ff365e7cff1c9964ab4607292d364e, 0be1955040a2eceed0ecfc387fdc92305411d273, f4cc21c6a8e9d392871477f9fd98d68e5ad80272 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.