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

sched_ext: Fix this_rq() assumptions in dispatch kfuncs

Under core scheduling, dispatch runs from within the core-wide pick and can
target a sibling rq, so ops.dispatch() may execute on a CPU different from
the dispatched rq's. Several kfunc paths assumed the two always coincide:

- scx_dsq_move() decided whether an rq lock is held by testing this_rq()'s
rq flags and lock-danced accordingly. A dispatch for a sibling took the
unlocked-context branch and acquired the source rq lock on top of the
already held dispatched rq lock which could deadlock.

- scx_bpf_sub_dispatch() dispatched this_rq() with its stashed
sub_dispatch_prev, which is NULL when dispatching for a sibling.

- finish_dispatch(), scx_bpf_dsq_reenq() and scx_bpf_dsq_nr_queued()
resolved SCX_DSQ_LOCAL to this CPU's local DSQ rather than the dispatched
rq's. The latter two are callable from other rq-locked operations too,
where SCX_DSQ_LOCAL now likewise resolves to the op's rq. This changes
behavior also without core scheduling, e.g. for ops.enqueue() running a
remote wakeup on the waking CPU, and is intended: which CPU happens to
execute an operation is incidental, the op's rq is what it is operating
on, and the resolution now matches the insert side where SCX_DSQ_LOCAL
dispatches land on the task's rq.

Use the rq tracked by scx_locked_rq(), which is set to the dispatched rq
around ops invocations and NULL in unlocked contexts.
Published: 2026-09-11
Score: 4.7 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service (deadlock)
Action: Apply Patch
AI Analysis

Impact

The vulnerability originates from incorrect assumptions that the runqueue returned by this_rq() matches the dispatched runqueue in core scheduling functions. When a dispatch targets a sibling CPU, this mismatch can cause scheduler functions such as scx_dsq_move, scx_bpf_sub_dispatch, finish_dispatch, scx_bpf_dsq_reenq, and scx_bpf_dsq_nr_queued to acquire locks in the wrong order or resolve local DSQ incorrectly, leading to deadlock and loss of scheduling responsiveness. The flaw is classified as CWE-833, a deadlock that results in denial of service, but does not affect confidentialityWith a CVSS score of 4.7 the vulnerability represents moderate severity. The EPSS score is < 1%, indicating a very low probability of exploitation. It is not listed in the CISA local access to the kernel scheduler – an attacker would need to trigger dispatch to a sibling runqueue, which is typically achieved primary consequence is a deadlock during runqueue locking that can freeze scheduling, leading to a denial of service, but it does not provide privilege escalation or data corruption.

Affected Systems

All Linux kernel users are impacted: the affected code resides in sched_ext and core scheduling. Any kernel version that has not yet incorporated the commits c3adb96d2e0d71b9ea21359 or 6d1890d3c6137ab523799765ae2de62cc05f116d is vulnerable. Linux kernel versions from standard distributions, including embedded, server, and desktop, must verify their kernel version and apply the patch.

Risk and Exploitability

The CVSS score of 4.7 classifies the vulnerability as moderate severity. The EPSS score of < 1% suggests a very low probability of real‑world exploitation. The vulnerability is not listed in CISA’s KEV catalog. The flaw arises from incorrect assumptions about the target runqueue during dispatch, allowing an attacker with the ability to trigger a dispatch to a sibling runqueue to potentially cause a deadlock and disrupt scheduling. However, the attack surface appears limited to kernel‑level conditions and no confirmed public exploits currently exist.

Generated by OpenCVE AI on September 13, 2026 at 06:58 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Merge the commits c3dd52416e44a70bc993adb96d2e0d71b9ea21359 and/or 6d1890d3c6137ab523799765ae2de62cc05f116d into the kernel source tree’s security update that incorporates these commits via the package manager.
  • Reboot the system to load the patched kernel and monitor the scheduler for stability.
  • Configure your system’s package manager to automatically install the latest kernel updates to ensure the patch is applied promptly.

Generated by OpenCVE AI on September 13, 2026 at 06:58 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 12 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-833
References
Metrics threat_severity

None

cvssV3_1

{'score': 4.7, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Fri, 11 Sep 2026 23:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: sched_ext: Fix this_rq() assumptions in dispatch kfuncs Under core scheduling, dispatch runs from within the core-wide pick and can target a sibling rq, so ops.dispatch() may execute on a CPU different from the dispatched rq's. Several kfunc paths assumed the two always coincide: - scx_dsq_move() decided whether an rq lock is held by testing this_rq()'s rq flags and lock-danced accordingly. A dispatch for a sibling took the unlocked-context branch and acquired the source rq lock on top of the already held dispatched rq lock which could deadlock. - scx_bpf_sub_dispatch() dispatched this_rq() with its stashed sub_dispatch_prev, which is NULL when dispatching for a sibling. - finish_dispatch(), scx_bpf_dsq_reenq() and scx_bpf_dsq_nr_queued() resolved SCX_DSQ_LOCAL to this CPU's local DSQ rather than the dispatched rq's. The latter two are callable from other rq-locked operations too, where SCX_DSQ_LOCAL now likewise resolves to the op's rq. This changes behavior also without core scheduling, e.g. for ops.enqueue() running a remote wakeup on the waking CPU, and is intended: which CPU happens to execute an operation is incidental, the op's rq is what it is operating on, and the resolution now matches the insert side where SCX_DSQ_LOCAL dispatches land on the task's rq. Use the rq tracked by scx_locked_rq(), which is set to the dispatched rq around ops invocations and NULL in unlocked contexts.
Title sched_ext: Fix this_rq() assumptions in dispatch kfuncs
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-11T19:44:01.222Z

Reserved: 2026-09-11T19:38:34.718Z

Link: CVE-2026-89518

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-11T20:19:34.417

Modified: 2026-09-11T20:19:34.417

Link: CVE-2026-89518

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-11T19:44:01Z

Links: CVE-2026-89518 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-13T07:00:08Z

Weaknesses