io_uring: fix task_work add use-after-free with SQPOLL
Summary
| CVE | CVE-2026-98858 |
| State | PUBLISHED |
| Assigner | Linux |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-10-18 16:17:40 UTC |
| Updated | 2026-10-19 10:19:49 UTC |
| Description | In the Linux kernel, the following vulnerability has been resolved:
io_uring: fix task_work add use-after-free with SQPOLL
For SQPOLL, the sqpoll thread runs task_work off its own list and
doesn't need to be told about it, so it can pop and complete a request
as soon as mpscq_push() has published it. If that was the last request
holding the ring alive, io_ring_exit_work() then frees the ctx, stops
the thread, and with it the tctx, while io_req_normal_work_add() is
still looking at both after the push:
BUG: KASAN: slab-use-after-free in io_req_normal_work_add+0x439/0x510
Read of size 4 at addr ff11000000ca0000 by task repro/55
(...)
BUG: KASAN: slab-use-after-free in queue_work_on+0x25/0x70
Write of size 8 at addr ff11000000c3bd00 by task repro/55
Hold an RCU read lock across the add, like io_req_local_work_add() already
does, and have io_ring_exit_work() wait for a grace period for SQPOLL rings
as well before freeing the ctx. |
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|
| CNA |
Linux |
Linux |
affected af5d68f8892f8ee8f137648b79ceb2abc153a19b 42b3332efacfd2140be4cd0dedad4fb96b8ae90e git |
Not specified |
| CNA |
Linux |
Linux |
affected af5d68f8892f8ee8f137648b79ceb2abc153a19b 891bd8335a0de3bb15c3b797ce3026bbb0dbef6c git |
Not specified |
| CNA |
Linux |
Linux |
affected af5d68f8892f8ee8f137648b79ceb2abc153a19b 395b25968fe854d4efaa19a8e9b7a5b6d1b3eea3 git |
Not specified |
| CNA |
Linux |
Linux |
affected af5d68f8892f8ee8f137648b79ceb2abc153a19b a92193c91e8839fe5fc209616ea95465ae4b919d git |
Not specified |
| CNA |
Linux |
Linux |
affected 6.9 |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.9 semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.12.113 6.12.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.18.56 6.18.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.2.10 7.2.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.3 * original_commit_for_fix |
Not specified |
References
| Reference | Source | Link | Tags |
|---|
| git.kernel.org/stable/c/a92193c91e8839fe5fc209616ea95465ae4b919d |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/395b25968fe854d4efaa19a8e9b7a5b6d1b3eea3 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/891bd8335a0de3bb15c3b797ce3026bbb0dbef6c |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/42b3332efacfd2140be4cd0dedad4fb96b8ae90e |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| CVE Program record |
CVE.ORG |
www.cve.org |
canonical |
| NVD vulnerability detail |
NVD |
nvd.nist.gov |
canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.