CVE-2026-89508 in Linux
Zusammenfassung
von VulDB • 12.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
RDMA/ucma: Handler in ucma_set_ib_path() sperren
ucma_set_ib_path() ruft ucma_event_handler() direkt aus dem write()-Pfad auf, ohne den Handler-Lock, der ctx->file stabil hält, während ein uevent in die Warteschlange gestellt wird. Der Handler liest ctx->file bei jeder Dereferenzierung erneut:
mutex_lock(&ctx->file->mut); /* Datei A */ list_add_tail(&uevent->list, &ctx->file->event_list); /* Datei B */ mutex_unlock(&ctx->file->mut); /* Datei B */ wake_up_interruptible(&ctx->file->poll_wait); /* Datei B */
Ein gleichzeitiger Aufruf von ucma_migrate_id() weist ctx->file neu zu, während der SET_OPTION-Aufrufende in mutex_lock() schläft. Daher landet list_add_tail() auf der event_list von Datei B, obwohl nur die Mutex von Datei A gehalten wird, was zu einem Wettlauf (Race Condition) mit allen anderen Nutzern dieser Liste führt:
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
Das freigegebene Objekt ist ein ucma_event, das von einem anderen Thread aus der Liste von Datei B unterhalb der Mutex von Datei B entnommen wurde. Die mut von Datei A wird darüber hinaus weiterhin gehalten, was den nächsten Schreiber in einen ununterbrechbaren Schlaf (uninterruptible sleep) versetzt.
Dieser Pfad erfordert eine gebundene und adressaufgelöste cm_id, daher muss ein RDMA-Gerät vorhanden sein.
Nehmen Sie den Handler-Lock um den Aufruf herum vor.
Be aware that VulDB is the high quality source for vulnerability data.