AZL-112592: CVE-2026-99243 affecting package kernel 6.6.159.1-1

Published Nov 3, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

io-wq: order the exit bit against worker creation task work

iowqexitworkers() cancels task work for queued worker creation with taskworkcancelmatch(). That has a plain load of task->taskworks.

ioqueueworkercreate() adds the new entry and tests IOWQBITEXIT to cancel it if the workqueue is already on its way out.

That must be ordered. taskworkadd() has a full barrier via cmpxchg(). But iowqexitstart() sets the bit with setbit() which doesn't have any memory ordering.

So afaict, on weakly ordered architectures the exiting task may load taskworks 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 workerrefs and the exiting task waits on workerdone indefinitely.

If the task still has rings then iouringdeltctxnode() provides the barrier via testandsetbit() in iowqsetexitonidle(). When it has closed all rings though that barrier is gone.

Add the barrier after the setbit().

Affected Software

1 affected component
azure-linux/kernel<=6.6.159.1-1

Event History

Nov 3, 2026
Advisory Published
via OSV·12:17 PM
Data Sourced
via OSV·12:17 PM
DescriptionAffected Software

Child vulnerabilities

Contains the following vulnerabilities.

Frequently Asked Questions

1

Which systems are most likely to encounter this issue?

Systems using io_uring and io-wq worker creation during workqueue teardown are affected by the described race. The issue is specifically relevant on weakly ordered architectures, and the missing ordering is exposed when the task has closed all of its rings.

2

What condition triggers the failure?

A worker-creation task work entry must be queued while io-wq exit is beginning, with both sides observing stale ordering around the exit bit. The queued entry can remain present with worker references after cancellation is attempted.

3

What is the operational impact if the race occurs?

The exiting task can wait indefinitely for worker completion because worker_refs remains associated with the queued worker-creation entry. This results in a hang during workqueue shutdown or task exit.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203