CVE-2026-43326

sched_ext: Fix SCX_KICK_WAIT deadlock by deferring wait to balance callback

Published May 8, 2026 CVSS 3.1 · 5.5 Medium EPSS < 1% KEV · Not listed
Description
In the Linux kernel, the following vulnerability has been resolved:

sched_ext: Fix SCX_KICK_WAIT deadlock by deferring wait to balance callback

SCX_KICK_WAIT busy-waits in kick_cpus_irq_workfn() using
smp_cond_load_acquire() until the target CPU's kick_sync advances. Because
the irq_work runs in hardirq context, the waiting CPU cannot reschedule and
its own kick_sync never advances. If multiple CPUs form a wait cycle, all
CPUs deadlock.

Replace the busy-wait in kick_cpus_irq_workfn() with resched_curr() to
force the CPU through do_pick_task_scx(), which queues a balance callback
to perform the wait. The balance callback drops the rq lock and enables
IRQs following the sched_core_balance() pattern, so the CPU can process
IPIs while waiting. The local CPU's kick_sync is advanced on entry to
do_pick_task_scx() and continuously during the wait, ensuring any CPU that
starts waiting for us sees the advancement and cannot form cyclic
dependencies.

Analysis

AI-generated

Technical impact

The SCX_KICK_WAIT routine in the Linux scheduler module busy‑waits in hardirq context while awaiting a kick_sync variable. Because the CPU cannot reschedule during this wait, its own kick_sync never advances, and when multiple CPUs form a wait cycle each stalls. This results in a deadlock that immobilizes the CPU pool, effectively halting system operation. The flaw is a classic race condition that leads to a kernel lock‑up, a severe denial of service scenario. The issue was addressed by replacing the tight loop with a rescheduling call and deferring the wait to a balance callback.

Affected Systems

This vulnerability exists in all Linux kernel releases that contain the original SCX_KICK_WAIT implementation. No version numbers are specified in the CVE data; the fixes are introduced in commits 415cb193 and c3a7903f. Any kernel built from or after these commits is considered safe. Administrators should verify that their running kernel incorporates these commits before relying on the resolution.

Risk and Exploitability

The deadlock can be triggered by the kernel's internal scheduling logic and does not require an external payload. No publicly documented exploits exist, and the EPSS score is < 1%. The CVSS score of 5.5 indicates a medium severity. The vulnerability is not listed in CISA’s KEV catalog. Because the flaw can bring all CPU cores to a halt, it poses a significant risk if present. Patching is recommended as soon as practicable, especially on systems that run untrusted or privileged code close to the kernel.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the SCX_KICK_WAIT fix, such as the kernel builds that contain commits 415cb193 or c3a7903f.
  • If an official distribution package is not yet available, backport the commits into your kernel source and rebuild the kernel, ensuring that the busy‑wait loop is replaced per the fix that addresses the deadlock flaw (CWE‑667) and event‑handler mismanaging condition (CWE‑833).
  • Reboot the system to activate the updated scheduler code.

Generated by OpenCVE AI on May 16, 2026 at 01:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Weaknesses CWE-362
Type Values Removed Values Added
Weaknesses CWE-667
CPEs cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:*
Metrics cvssV3_1

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

Type Values Removed Values Added
Weaknesses CWE-362
Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: sched_ext: Fix SCX_KICK_WAIT deadlock by deferring wait to balance callback SCX_KICK_WAIT busy-waits in kick_cpus_irq_workfn() using smp_cond_load_acquire() until the target CPU's kick_sync advances. Because the irq_work runs in hardirq context, the waiting CPU cannot reschedule and its own kick_sync never advances. If multiple CPUs form a wait cycle, all CPUs deadlock. Replace the busy-wait in kick_cpus_irq_workfn() with resched_curr() to force the CPU through do_pick_task_scx(), which queues a balance callback to perform the wait. The balance callback drops the rq lock and enables IRQs following the sched_core_balance() pattern, so the CPU can process IPIs while waiting. The local CPU's kick_sync is advanced on entry to do_pick_task_scx() and continuously during the wait, ensuring any CPU that starts waiting for us sees the advancement and cannot form cyclic dependencies.
Title sched_ext: Fix SCX_KICK_WAIT deadlock by deferring wait to balance callback
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References
Weaknesses

Sources

Status
PUBLISHED
Assigner
Linux
Published
Updated
May 11, 2026, 10:22 PM
Reserved
May 1, 2026, 2:12 PM
Status
Analyzed
Published
May 8, 2026, 2:16 PM
Modified
Nov 11, 2026, 8:10 PM
Severity
Public date
May 8, 2026, 12:00 AM