Public mode

No access to your tenant or devices. Every item links to its source. What this means

Some sources or documents need attention: 261/275 feeds/APIs · 469/469 docs · 9/9 advisories · checked 18:48 UTC Customize Public modeDiscuss ChangeIntel on Discord

io_uring: don't flood a cancelling task with task_work

Assessment

Severity
Moderate
CVSS base score
5.5
Impact
Not stated
Exploitation detected
Unknown: not stated by MSRC
Exploitability
Not assessed
Publicly disclosed
Unknown: not stated by MSRC
EPSS · 30-day forecast
No EPSS score collected
Customer action
Required: follow the MSRC remediation guidance
More details
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Public detection template
No Nuclei template is listed in the current collected catalog
Component
Mariner
Weakness
—
Issued by
Linux
Published
4 Nov 2026 · November 2026
Last revised
7 Nov 2026Information published.
CVSS 3.1 base metricsRed raises the risk · green lowers it
Attack vector
LocalAV:L
Attack complexity
LowAC:L
Privileges required
LowPR:L
User interaction
NoneUI:N
Scope
UnchangedS:U
Confidentiality
NoneC:N
Integrity
NoneI:N
Availability
HighA:H

Updates that fix it

0 KBs

No KB listed

No KB update is listed in the collected MSRC record. Check the MSRC advisory for product releases and other remedies.

Affected products

Open Source Software
1 affected product
  • azl3 kernel 6.6.159.1-1 on Azure Linux 3.0

What changed

  1. Detection template: Unknown: detection-template evidence is incomplete or retained → No Nuclei template listed
  2. Detection template: No Nuclei template listed → Unknown: detection-template evidence is incomplete or retained
Page history

Changes are dated when recorded; day views use the last saved version from that UTC day, and citations stay fixed.

Cite this version
Field-level log (10)

Up to 100 recent field edits are shown; older edits may be outside retention.

  1. 7 Nov 2026 · 08:59:22 UTC Last revised5 Nov 2026 14:54 UTC → 7 Nov 2026 01:45 UTC
  2. 6 Nov 2026 · 17:32:22 UTC Public detection templateUnknown: detection-template evidence is incomplete or retained → No Nuclei template listed
  3. 6 Nov 2026 · 17:32:22 UTC Source coverage: public-exploit-codeIncomplete → Current
  4. 6 Nov 2026 · 17:32:22 UTC Source coverage: first-epssIncomplete → Current
  5. 6 Nov 2026 · 17:32:22 UTC Source coverage: msrc-cvrfIncomplete → Current
  6. 6 Nov 2026 · 16:31:02 UTC Public detection templateNo Nuclei template listed → Unknown: detection-template evidence is incomplete or retained
  7. 6 Nov 2026 · 16:31:02 UTC Source coverage: public-exploit-codeCurrent → Incomplete
  8. 6 Nov 2026 · 16:31:02 UTC Source coverage: first-epssCurrent → Incomplete
  9. 6 Nov 2026 · 16:31:02 UTC Source coverage: msrc-cvrfCurrent → Incomplete
  10. 6 Nov 2026 · 08:04:49 UTC Last revised4 Nov 2026 14:46 UTC → 5 Nov 2026 14:54 UTC

Explore global source statements, affected packages and advisory history for CVE-2026-99254. The catalog has a separate collection scope from Microsoft release records.

Collected exploitation and prediction evidence

Risk source coverage

CISA KEV is observed exploitation evidence. FIRST EPSS is a dated prediction of exploitation in the next 30 days. Missing scores are unknown. This collector requests predictions only for explicit CVE aliases in the public NuGet archive; Microsoft release views retain their existing prediction scope.

No collected risk observation for these identifiers. This does not establish absence of exploitation or a zero probability.

cve-program · CVE-2026-99254

Published

io_uring: don't flood a cancelling task with task_work

In the Linux kernel, the following vulnerability has been resolved: io_uring: don't flood a cancelling task with task_work io_ring_exit_work() asks each task which has used the ring to remove its tctx node, by task_work, and repeats that until the list is empty. io_tctx_exit_cb() doesn't touch the node while the task is in io_uring_cancel_generic(), which removes all the nodes at its end. So the work item queues the callback again as soon as it has completed, for nothing. That is more than a waste of time. task_work_run() only returns when it finds the list empty. If the rings are released from inside the cancellation, because requests of other rings held the last references to their files, up to 64 work items keep sending callbacks to the one task which is running them. It never finds the list empty, never gets back to the cancellation, the nodes stay, and so it goes on: a task with 60 pairs of rings which poll each other ran 280000 callbacks in 5 seconds, 20 seconds after exit_group(). It ends when all the senders happen to be late at the same time. Until then the task keeps a CPU and the work items busy. An exiting task can't be killed meanwhile. execve() cancels the requests in the same way, so a live task can get stuck there as well, for minutes. If it takes more than five, the work items run into the WARN_ON_ONCE(time_after(jiffies, timeout)) of io_ring_exit_work(). No privilege is needed for any of this. If the callback has met a task in cancellation, wait a little before it is sent again. Nobody has to wake the work item up for that: either the node is gone by then, or it is the turn of the next round.

Source published
3 Nov 2026 11:20:12 UTC
Source modified
6 Nov 2026 17:15:13 UTC
Observed here
6 Nov 2026 19:02:40 UTC
Source terms
CVE Program Terms of Use

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: cve-program · CVE Program Terms of Use. Source text is retained; field grouping and change labels are provided by ChangeIntel.

ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 10 Nov 18:48 UTC · 261 of 275 readable · 260 fully read · documentation 469/469 current