{"id":"CVE-2026-89508","revision":"5a58acc719244ec8aa7eebd22d02809d","records":[{"revision":"5a58acc719244ec8aa7eebd22d02809d","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-89508","aliases":[],"title":"RDMA/ucma: Lock the handler in ucma_set_ib_path()","description":"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->file stable while a uevent\nis queued.  The handler re-reads ctx->file for every dereference:\n\n\tmutex_lock(&ctx->file->mut);\t\t\t/* file A */\n\tlist_add_tail(&uevent->list, &ctx->file->event_list);\t/* file B */\n\tmutex_unlock(&ctx->file->mut);\t\t\t/* file B */\n\twake_up_interruptible(&ctx->file->poll_wait);\t/* file B */\n\nA concurrent ucma_migrate_id() reassigns ctx->file 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.","state":0,"publishedAt":"2026-09-11T19:43:54.682+00:00","modifiedAt":"2026-10-19T08:47:59.672+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/infiniband/core/ucma.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"09e328e47a695b0d346598f5d6593ee598e64885\",\n                            \"lessThan\": \"3dd07b369371a2f29e1c3caf1ade85bb92b4c551\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"09e328e47a695b0d346598f5d6593ee598e64885\",\n                            \"lessThan\": \"b2da0d488a1c72956ebb0a57015ee8ee6a2f7748\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"09e328e47a695b0d346598f5d6593ee598e64885\",\n                            \"lessThan\": \"a7f8d26e653ee43b0b572984b8ec544d3b3b6f3c\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"09e328e47a695b0d346598f5d6593ee598e64885\",\n                            \"lessThan\": \"71dc206f2e2a645dac78879768762451aa1799f7\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"09e328e47a695b0d346598f5d6593ee598e64885\",\n                            \"lessThan\": \"764586f8f6180084c5a7d622120f526acc6ce0c9\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"09e328e47a695b0d346598f5d6593ee598e64885\",\n                            \"lessThan\": \"28ac2dd416482d1c763c4af5d61af465b387fb50\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"09e328e47a695b0d346598f5d6593ee598e64885\",\n                            \"lessThan\": \"43a7d8ae9f645dc00235cfa4bf57673c20b769f8\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"09e328e47a695b0d346598f5d6593ee598e64885\",\n                            \"lessThan\": \"ecbe7d36dc2de07e5dfbb4a8ff5b315ab43de820\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/infiniband/core/ucma.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"5.10\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"5.10\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.10.270\",\n                            \"lessThanOrEqual\": \"5.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.221\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.188\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.157\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.109\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.50\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.4\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","score":7.8,"severity":"HIGH"}],"references":["https://git.kernel.org/stable/c/3dd07b369371a2f29e1c3caf1ade85bb92b4c551","https://git.kernel.org/stable/c/b2da0d488a1c72956ebb0a57015ee8ee6a2f7748","https://git.kernel.org/stable/c/a7f8d26e653ee43b0b572984b8ec544d3b3b6f3c","https://git.kernel.org/stable/c/71dc206f2e2a645dac78879768762451aa1799f7","https://git.kernel.org/stable/c/764586f8f6180084c5a7d622120f526acc6ce0c9","https://git.kernel.org/stable/c/28ac2dd416482d1c763c4af5d61af465b387fb50","https://git.kernel.org/stable/c/43a7d8ae9f645dc00235cfa4bf57673c20b769f8","https://git.kernel.org/stable/c/ecbe7d36dc2de07e5dfbb4a8ff5b315ab43de820"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-89508","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-89508","identifiers":["CVE-2026-89508"]},"retained":false,"historicalAffected":[]}],"coverage":[]}