CVE-2026-98219
Description
In the Linux kernel, the following vulnerability has been resolved: sched_ext: Close the pre-enable ops error claim window scx_alloc_and_add_sched() publishes ops->priv before scx_root_enable_workfn() switches the state to SCX_ENABLING. An error claimed via scx_bpf_error_bstr() from an associated BPF program in that window is consumed by scx_disable_workfn(), which takes the pre-enable shortcut in scx_root_disable(). The shortcut returns without any teardown and restores SCX_DISABLED with an unconditional scx_set_enable_state() xchg racing the enable workfn's own transition. The enable then completes with the claim consumed: the scheduler stays up but can never be disabled again, and bpf_scx_unreg() frees it while still in use, resulting in a use-after-free. Both WARN_ON_ONCE()s fire back to back: WARNING: kernel/sched/ext/ext.c:7522 at scx_root_enable_workfn+0xeec/0x1be0, CPU#3: scx_enable_help/276 WARNING: kernel/sched/ext/ext.c:6398 at scx_root_disable+0xb50/0xdb8, CPU#0: sched_ext_helpe/664 scx_root_enable_workfn() switches to SCX_ENABLING before the scheduler allocation, so ops->priv is never visible while SCX_DISABLED. The allocation failure path restores SCX_DISABLED.
How to fix
- Linux Linux959c66dc4a915be306c35691095c787c61dc7df9, c7a1c6e8004ab12a9c9bfdcb603f60f9bf4a3cee or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| Linux Linux | 105dcd005be2ac1d5541921db8feb1d0f98d59d5 ≤ v < 959c66dc4a915be306c35691095c787c61dc7df9, 105dcd005be2ac1d5541921db8feb1d0f98d59d5 ≤ v < c7a1c6e8004ab12a9c9bfdcb603f60f9bf4a3cee, 7.1 | 959c66dc4a915be306c35691095c787c61dc7df9, c7a1c6e8004ab12a9c9bfdcb603f60f9bf4a3cee |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.