CVE-2026-89508

CVE-2026-89508

High · published September 12, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
2.1
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00126 · 2.1th percentile
Published
2026-09-12T00:19Z
References (8)
EPSS history
Timeline
  • 13 SEP 03:23Z
    EPSS moved — → 0%
    epss
  • 11 SEP 19:43Z
    RDMA/ucma: Lock the handler in ucma_set_ib_path()
    cvelistv5