UBUNTU-CVE-2026-89507: High severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: RDMA/ucma: Lock the handler in ucmawritecmevent() ctx->file may only be changed under the handler lock and the xalock, which is what stops uevents being queued for a ctx while ucmamigrateid() moves it to another file. The CM core takes that lock before invoking ucmaeventhandler(), but the write() paths that queue uevents themselves do not. ucmawritecmevent() re-reads ctx->file for each of its four dereferences, so ucmamigrateid() can swap it mid-sequence: mutexlock(&ctx->file->mut); / file A / listaddtail(&uevent->list, &ctx->file->eventlist); / file B / mutexunlock(&ctx->file->mut); / file B / wakeupinterruptible(&ctx->file->pollwait); / file B / The window is the mutexlock() itself: the writer sleeps in it while the migration reassigns ctx->file. The listaddtail() then runs on file B's eventlist holding only file A's mutex: listadd corruption. prev->next should be next (ffff888101320f30), but was ffff88814a08c418. (prev=ffff88814a075c18). kernel BUG at lib/listdebug.c:32! Call Trace: ucmawritecmevent+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 ucmacleanupctxevents() will not walk, so it outlives its context. /dev/infiniband/rdmacm is 0666 and no RDMA device is involved, so an unprivileged user reaches all of this. Take the handler lock, as ucmacleanupmcevents() does; ctx->cmid is pinned by the ucmagetctx() reference.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
In ucma_write_cm_event(), take the handler lock before accessing ctx->file or queuing the uevent, as ucma_cleanup_mc_events() does; ensure ctx->file changes remain protected by the handler lock and xa_lock.
Event History
Frequently Asked Questions
Who is exposed to this issue?
Systems using the listed Ubuntu Linux kernel packages are potentially exposed where RDMA UCMA functionality is in use. The issue is local, as indicated by the local attack vector.
What access does an attacker need to exploit it?
An attacker needs local access and low privileges. No user interaction is required.
What is the likely impact of successful exploitation?
The vulnerability can cause list corruption and a kernel BUG, and may leave a file mutex held indefinitely, wedging subsequent writers. The supplied severity vector rates confidentiality, integrity, and availability impacts as high.
What condition triggers the race?
The race occurs when event-writing paths queue UCMA events while ucma_migrate_id() moves the context to another file. The context's file pointer can change after one file mutex is locked but before the event is added to the list.