{"id":"CVE-2026-99243","revision":"b92ee7d5c6ab49f7b2e3711b5b7fcb59","records":[{"revision":"b92ee7d5c6ab49f7b2e3711b5b7fcb59","observedAt":"2026-11-03T12:57:16.958+00:00","statement":{"source":"cve-program","id":"CVE-2026-99243","aliases":[],"title":"io-wq: order the exit bit against worker creation task work","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nio-wq: order the exit bit against worker creation task work\n\nio_wq_exit_workers() cancels task work for queued worker creation with\ntask_work_cancel_match(). That has a plain load of task->task_works.\n\nio_queue_worker_create() adds the new entry and tests IO_WQ_BIT_EXIT to\ncancel it if the workqueue is already on its way out.\n\nThat must be ordered. task_work_add() has a full barrier via cmpxchg().\nBut io_wq_exit_start() sets the bit with set_bit() which doesn't have\nany memory ordering.\n\nSo afaict, on weakly ordered architectures the exiting task may load\ntask_works before the store of the bit is visible. The other side tests\nthe bit before the store is visible as well. So the entry remains queued\nwith worker_refs and the exiting task waits on worker_done indefinitely.\n\nIf the task still has rings then io_uring_del_tctx_node() provides the\nbarrier via test_and_set_bit() in io_wq_set_exit_on_idle(). When it\nhas closed all rings though that barrier is gone.\n\nAdd the barrier after the set_bit().","state":0,"publishedAt":"2026-11-03T11:14:30.233+00:00","modifiedAt":"2026-11-03T11:15:42.615+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                        \"io_uring/io-wq.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"4b4e5bbf9386d4ec21d91c0cb0fd60b9bba778ec\",\n                            \"lessThan\": \"67da3eec264aeb67835886720243ae2dc1463315\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"71a85387546e50b1a37b0fa45dadcae3bfb35cf6\",\n                            \"lessThan\": \"a63c752157eacf49f628359822666b32503d194a\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"71a85387546e50b1a37b0fa45dadcae3bfb35cf6\",\n                            \"lessThan\": \"1432d881d99584105122760133caeff1dce7a9f7\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"71a85387546e50b1a37b0fa45dadcae3bfb35cf6\",\n                            \"lessThan\": \"6cf012a4d5e461c788ecc9dbed67adc31a142644\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"71a85387546e50b1a37b0fa45dadcae3bfb35cf6\",\n                            \"lessThan\": \"0d81cdd433b0a96c5275c01b8172e0b1f71dd595\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"71a85387546e50b1a37b0fa45dadcae3bfb35cf6\",\n                            \"lessThan\": \"75395db7a9b40a2e826c838e648fef8ed1a2d174\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"71a85387546e50b1a37b0fa45dadcae3bfb35cf6\",\n                            \"lessThan\": \"31fc780b75b278d37700373d54a99fdb4117fdd6\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"5.15.11\",\n                            \"lessThan\": \"5.15.224\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\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                        \"io_uring/io-wq.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"5.16\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"5.16\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.224\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.191\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.161\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.115\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.60\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.14\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3.1\",\n                            \"lessThanOrEqual\": \"7.3.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ]\n                }"}],"metrics":[],"references":["https://git.kernel.org/stable/c/67da3eec264aeb67835886720243ae2dc1463315","https://git.kernel.org/stable/c/a63c752157eacf49f628359822666b32503d194a","https://git.kernel.org/stable/c/1432d881d99584105122760133caeff1dce7a9f7","https://git.kernel.org/stable/c/6cf012a4d5e461c788ecc9dbed67adc31a142644","https://git.kernel.org/stable/c/0d81cdd433b0a96c5275c01b8172e0b1f71dd595","https://git.kernel.org/stable/c/75395db7a9b40a2e826c838e648fef8ed1a2d174","https://git.kernel.org/stable/c/31fc780b75b278d37700373d54a99fdb4117fdd6"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-99243","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-99243","identifiers":["CVE-2026-99243"]},"retained":false,"historicalAffected":[]}],"coverage":[]}