CVE-2026-89519

Summary

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

sched_ext: Replace SCX_RQ_BAL_KEEP with a dispatch verdict return

SCX_RQ_BAL_KEEP tells the pick to keep running the previous task, a leftover from when balancing and picking were separate operations. An rq-level flag only works while dispatches and picks pair up one to one, which core scheduling breaks: selections interleave through dispatch's lock drops and a pick can consume a stale flag, keeping a task that has since been dequeued. Fixing core scheduling support requires the decision to travel with the dispatch that made it. Make scx_dispatch_sched() and balance_one() return an explicit verdict instead and drop the flag's plumbing from the tools autogen enum headers.

Also factor the pick-side invocation, its follow-up queueing and the post-dispatch checks out of do_pick_task_scx() into dispatch_pick(). No functional changes intended.

v2: Drop the SCX_RQ_BAL_KEEP plumbing from the tools autogen enum headers as well (Andrea).

Affected Software

VendorProductVersion RangeStatus
LinuxLinux4c95380701f58b8112f0b891de8d160e4199e19d < 6f1d3bfe54430f8d54e0530a27f2ecbf8466576eaffected
LinuxLinux4c95380701f58b8112f0b891de8d160e4199e19d < ffaab58d217581cb75353168f8812a16e10463fcaffected
LinuxLinux6.19affected
LinuxLinux0 < 6.19unaffected
LinuxLinux7.2.4 <= 7.2.*unaffected
LinuxLinux7.3-rc1 <= *unaffected

Weaknesses

References