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

sched_ext: Preserve rq tracking across local DSQ dispatch

dispatch_to_local_dsq() can run from scx_bpf_dsq_move_to_local() while
ops.dispatch() has recorded the current rq. Moving a task to a local DSQ
may switch to the source or destination rq before synchronously invoking
ops.dequeue() through the following path:

SCX_CALL_OP(dispatch, rq)
ops.dispatch()
scx_bpf_dsq_move_to_local()
scx_flush_dispatch_buf()
finish_dispatch()
dispatch_to_local_dsq()
scx_dispatch_enqueue()
local_dsq_post_enq()
call_task_dequeue()
SCX_CALL_OP_TASK(dequeue, locked_rq, ...)

The nested callback saves the recorded rq and restores it on return. If
the rq tracking does not follow the lock switch, update_locked_rq() can
trigger the following lockdep assertion while restoring an rq which is
no longer held:

WARNING: kernel/sched/sched.h:1641 at call_task_dequeue+0x160/0x170
Call Trace:
scx_dispatch_enqueue+0x2b0/0x460
dispatch_to_local_dsq+0x138/0x230
scx_flush_dispatch_buf+0x1af/0x220
scx_bpf_dsq_move_to_local___v2+0xe2/0x1c0
bpf__sched_ext_ops_dispatch+0x4b/0xa7
do_pick_task_scx+0x3b6/0x910
__pick_next_task+0x105/0x1f0
__schedule+0x3e7/0x1980

Introduce switch_rq_lock() to update the tracking state together with
each rq lock handoff. Use it in dispatch_to_local_dsq(),
move_remote_task_to_local_dsq() and the in-balance paths of
scx_dsq_move(), ensuring that scx_locked_rq() consistently refers to the
rq whose lock is actually held throughout the lock dance.
Published: 2026-08-10
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

This flaw arises in the Linux kernel scheduler: the scheduler’s lock tracking is not updated correctly when a task is moved to a local Device Scheduling Queue (DSQ), causing the lockdep subsystem to assert that a lock is held when it is not. The resulting inconsistent state can trigger a kernel crash or deadlock, effectively leading to a denial of service on the affected host. This issue is a classic example of inadequate synchronization leading to a race condition, and results in loss of availability rather than confidentiality or integrity compromise.

Affected Systems

All Linux kernel builds that do not include the update fixing "sched_ext: Preserve rq tracking across local DSQ dispatch" are potentially affected. The exact affected versions are not listed in the CVE data; as such any kernel version prior to the patch that implements the scheduler extension is at risk. The vulnerability is specific to the Linux kernel core component and is not tied to a particular distribution vendor’s patch cycle.

Risk and Exploitability

The severity rating is not provided in the CVE, but the presence of a lockdep assertion and the possibility of a kernel panic suggest a high impact if exploited. EPSS data is unavailable, indicating no publicly known exploit data at the time of the advisories. The vulnerability is not listed in CISA’s KEV catalog, which implies no confirmed exploitation has been observed. Likely attack vectors involve locally privileged or BPF-capable code that can manipulate scheduler extensions; an attacker would need the ability to load BPF programs that interact with DSQ scheduling. Even without a published exploit, a local attacker could trigger the bug through crafted BPF or kernel modules and cause a crash, leading to service disruption.

Generated by OpenCVE AI on August 10, 2026 at 13:25 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to the latest stable release that contains the fix for "sched_ext: Preserve rq tracking across local DSQ dispatch".
  • If an immediate kernel upgrade is not possible, restrict or disable BPF scheduler extensions that write to DSQ to eliminate the code paths that trigger lock tracking problems.
  • Continuously monitor kernel logs for lockdep warnings and reboot or isolate the host if a warning is detected to prevent service interruption.

Generated by OpenCVE AI on August 10, 2026 at 13:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 10 Aug 2026 13:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-367
CWE-451

Mon, 10 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: sched_ext: Preserve rq tracking across local DSQ dispatch dispatch_to_local_dsq() can run from scx_bpf_dsq_move_to_local() while ops.dispatch() has recorded the current rq. Moving a task to a local DSQ may switch to the source or destination rq before synchronously invoking ops.dequeue() through the following path: SCX_CALL_OP(dispatch, rq) ops.dispatch() scx_bpf_dsq_move_to_local() scx_flush_dispatch_buf() finish_dispatch() dispatch_to_local_dsq() scx_dispatch_enqueue() local_dsq_post_enq() call_task_dequeue() SCX_CALL_OP_TASK(dequeue, locked_rq, ...) The nested callback saves the recorded rq and restores it on return. If the rq tracking does not follow the lock switch, update_locked_rq() can trigger the following lockdep assertion while restoring an rq which is no longer held: WARNING: kernel/sched/sched.h:1641 at call_task_dequeue+0x160/0x170 Call Trace: scx_dispatch_enqueue+0x2b0/0x460 dispatch_to_local_dsq+0x138/0x230 scx_flush_dispatch_buf+0x1af/0x220 scx_bpf_dsq_move_to_local___v2+0xe2/0x1c0 bpf__sched_ext_ops_dispatch+0x4b/0xa7 do_pick_task_scx+0x3b6/0x910 __pick_next_task+0x105/0x1f0 __schedule+0x3e7/0x1980 Introduce switch_rq_lock() to update the tracking state together with each rq lock handoff. Use it in dispatch_to_local_dsq(), move_remote_task_to_local_dsq() and the in-balance paths of scx_dsq_move(), ensuring that scx_locked_rq() consistently refers to the rq whose lock is actually held throughout the lock dance.
Title sched_ext: Preserve rq tracking across local DSQ dispatch
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-08-10T11:58:07.086Z

Reserved: 2026-07-30T09:28:09.367Z

Link: CVE-2026-68094

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-10T14:30:03Z

Weaknesses
  • CWE-367

    Time-of-check Time-of-use (TOCTOU) Race Condition

  • CWE-451

    User Interface (UI) Misrepresentation of Critical Information