sched_ext: Don't BUG_ON a destroyed DSQ in process_deferred_reenq_users
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 7.2.4
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: sched_ext: Don't BUG_ON a destroyed DSQ in process_deferred_reenq_users scx_bpf_dsq_reenq() queues a deferred reenq (dru) that runs from run_deferred(), not ops.dispatch(). If the DSQ is destroyed before the dru runs, process_deferred_reenq_users() sees dsq->id == SCX_DSQ_INVALID and hits the BUG_ON. destroy_dsq() doesn't flush pending drus, so just skip. tj: Read dsq->id once with READ_ONCE(). Reading it separately in the INVALID check and the BUG_ON would leave a window where destroy_dsq() can invalidate the id between the two reads and still trigger the BUG_ON.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 84b1a0ea0b7c23dec240783a592e480780efe459 · fixed in c480961a1e790b46ffd8c20c4b6754d65ec6572d; From 84b1a0ea0b7c23dec240783a592e480780efe459 · fixed in 8d8dd8ae89eaa78b37fc85528e926029f5facbdf
- Linux Linux
7.1
- KernelLinux
From 7.1.0 · fixed in 7.2.4