Skip to main content
VulnerabilityPublished

CVE-2026-99144: Linux kernel · sched_ext: Fix use-after-free of a destroyed user DSQ by a deferred reenqueue

Affects Linux kernelSource CVE Database V5

0

Not known to be exploited : upgrade to 069403dff337feb192bfc70fb28ddc8a171e20c1 or 633f586329bfd9843bf8acf86c95353f4c16e22d when convenient.

Data as of 28 Oct 2026, 10:58 UTC

Severity
Unrated

Rated by Threat Radar · CVSS not yet scored by NVD

Patch
Available – fixed in 069403dff337feb192bfc70fb28ddc8a171e20c1, 633f586329bfd9843bf8acf86c95353f4c16e22d

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 28 Oct 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponised: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.

What to do

Upgrade Linux kernel to 069403dff337feb192bfc70fb28ddc8a171e20c1 or 633f586329bfd9843bf8acf86c95353f4c16e22d.

Affected software

ProductAffectedFixed in
LinuxLinuxAffected
  • ≥ 84b1a0ea0b7c23dec240783a592e480780efe459, < 069403dff337feb192bfc70fb28ddc8a171e20c1
Fixed in
  • 069403dff337feb192bfc70fb28ddc8a171e20c1
LinuxLinuxAffected
  • ≥ 84b1a0ea0b7c23dec240783a592e480780efe459, < 633f586329bfd9843bf8acf86c95353f4c16e22d
Fixed in
  • 633f586329bfd9843bf8acf86c95353f4c16e22d
LinuxLinuxAffected
  • =7.1
Fixed in–

Description

In the Linux kernel, the following vulnerability has been resolved: sched_ext: Fix use-after-free of a destroyed user DSQ by a deferred reenqueue A deferred reenqueue can read a freed user DSQ. The request stays on its CPU's deferred list until run_deferred() takes it, and the RCU callback that frees the DSQ assumes that the grace period has flushed it, so exit_dsq() checks the per-CPU node without the deferred list lock. A grace period waits for readers in flight, not for a pending run_deferred(). A run_deferred() which starts after the grace period began can detach the request right before the callback looks and then read the freed DSQ's id. Cancel the pending requests before the grace period instead. The irq work that frees the DSQ unlinks every CPU's request under the per-CPU deferred list lock, and schedule_dsq_reenq() ignores a new request under the same lock once the id is invalid. Only a run_deferred() that started before the grace period can hold a request, and it runs with IRQs disabled, so the grace period waits for it and nothing touches the DSQ after the callback.

References

Community reviews

Loading reviews…