{"id":"CVE-2026-89508","summary":"RDMA/ucma: Lock the handler in ucma_set_ib_path()","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/ucma: Lock the handler in ucma_set_ib_path()\n\nucma_set_ib_path() calls ucma_event_handler() straight from the write()\npath, without the handler lock that keeps ctx-\u003efile stable while a uevent\nis queued.  The handler re-reads ctx-\u003efile for every dereference:\n\n\tmutex_lock(&ctx-\u003efile-\u003emut);\t\t\t/* file A */\n\tlist_add_tail(&uevent-\u003elist, &ctx-\u003efile-\u003eevent_list);\t/* file B */\n\tmutex_unlock(&ctx-\u003efile-\u003emut);\t\t\t/* file B */\n\twake_up_interruptible(&ctx-\u003efile-\u003epoll_wait);\t/* file B */\n\nA concurrent ucma_migrate_id() reassigns ctx-\u003efile while the SET_OPTION\ncaller sleeps in mutex_lock(), so the list_add_tail() lands on file B's\nevent_list while only file A's mutex is held, racing every other user of\nthat list:\n\n  BUG: KASAN: slab-use-after-free in __list_add_valid_or_report+0x1aa/0x1c0\n  Read of size 8 at addr ffff888153c6a418 by task poc_corr/486\n  Call Trace:\n   __list_add_valid_or_report+0x1aa/0x1c0\n   ucma_event_handler+0x1be/0xc00\n   ucma_set_ib_path+0x45e/0x710\n   ucma_set_option+0x32e/0x590\n   ucma_write+0x1f9/0x330\n  Allocated by task 505:\n   ucma_write_cm_event+0x1a1/0x660\n  Freed by task 505:\n   kfree+0x1da/0x4c0\n   ucma_get_event+0x5d5/0x7e0\n\nThe freed object is a ucma_event that another thread dequeued from file B's\nlist under file B's mutex.  File A's mut is left held on top of that,\nwedging its next writer in uninterruptible sleep.\n\nThis path needs a bound and address-resolved cm_id, so it requires an RDMA\ndevice to be present.\n\nTake the handler lock around the call.","modified":"2026-09-14T03:46:06.572911536Z","published":"2026-09-11T19:43:54.682Z","database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89508.json"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/28ac2dd416482d1c763c4af5d61af465b387fb50"},{"type":"WEB","url":"https://git.kernel.org/stable/c/43a7d8ae9f645dc00235cfa4bf57673c20b769f8"},{"type":"WEB","url":"https://git.kernel.org/stable/c/764586f8f6180084c5a7d622120f526acc6ce0c9"},{"type":"WEB","url":"https://git.kernel.org/stable/c/ecbe7d36dc2de07e5dfbb4a8ff5b315ab43de820"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89508.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-89508"},{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"09e328e47a695b0d346598f5d6593ee598e64885"},{"fixed":"764586f8f6180084c5a7d622120f526acc6ce0c9"},{"fixed":"28ac2dd416482d1c763c4af5d61af465b387fb50"},{"fixed":"43a7d8ae9f645dc00235cfa4bf57673c20b769f8"},{"fixed":"ecbe7d36dc2de07e5dfbb4a8ff5b315ab43de820"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89508.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.10.0"},{"fixed":"6.12.109"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.0"},{"fixed":"6.18.50"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.2.4"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89508.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"}]}