CVE-2026-99243: vulnerability in Linux
io-wq: order the exit bit against worker creation task work
Published
E-mail alert when it lands in KEV, gets a public PoC or its score goes up.
0Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Track
In the Linux kernel, the following vulnerability has been resolved:
io-wq: order the exit bit against worker creation task work
io_wq_exit_workers() cancels task work for queued worker creation with
task_work_cancel_match(). That has a plain load of task->task_works.
io_queue_worker_create() adds the new entry and tests IO_WQ_BIT_EXIT to
cancel it if the workqueue is already on its way out.
That must be ordered. task_work_add() has a full barrier via cmpxchg().
But io_wq_exit_start() sets the bit with set_bit() which doesn't have
any memory ordering.
So afaict, on weakly ordered architectures the exiting task may load
task_works before the store of the bit is visible. The other side tests
the bit before the store is visible as well. So the entry remains queued
with worker_refs and the exiting task waits on worker_done indefinitely.
If the task still has rings then io_uring_del_tctx_node() provides the
barrier via test_and_set_bit() in io_wq_set_exit_on_idle(). When it
has closed all rings though that barrier is gone.
Add the barrier after the set_bit().
Affected products
Linux · LinuxRelated CVEs — Linux
In the same product, most dangerous first.
CVE-2026-31431HIGHcrypto: algif_aead - Revert to operating out-of-placeEPSS 98.1%KEVCVE-2026-46300HIGHnet: skbuff: preserve shared-frag marker during coalescingEPSS 16.1%KEVCVE-2024-53197HIGHALSA: usb-audio: Fix potential out-of-bound accesses for Extigy and Mbox devicesEPSS 4.1%KEVCVE-2024-53104HIGHmedia: uvcvideo: Skip parsing frames of type UVC_VS_UNDEFINED in uvc_parse_formatEPSS 3.4%KEVCVE-2025-39682CRITICALtls: fix handling of zero-length records on the rx_listEPSS 3.3%KEVCVE-2024-36971HIGHnet: fix __dst_negative_advice() raceEPSS 2.7%KEV
References
https://git.kernel.org/stable/c/0d81cdd433b0a96c5275c01b8172e0b1f71dd595https://git.kernel.org/stable/c/0e5663856b69219ef2f02e04bac9f5c5be19718ahttps://git.kernel.org/stable/c/1432d881d99584105122760133caeff1dce7a9f7https://git.kernel.org/stable/c/31fc780b75b278d37700373d54a99fdb4117fdd6https://git.kernel.org/stable/c/67da3eec264aeb67835886720243ae2dc1463315https://git.kernel.org/stable/c/6cf012a4d5e461c788ecc9dbed67adc31a142644https://git.kernel.org/stable/c/75395db7a9b40a2e826c838e648fef8ed1a2d174https://git.kernel.org/stable/c/a63c752157eacf49f628359822666b32503d194a