CVE-2025-39780: sched/ext: Fix invalid task state transitions on class switch
In the Linux kernel, the following vulnerability has been resolved:
sched/ext: Fix invalid task state transitions on class switch
When enabling a schedext scheduler, we may trigger invalid task state transitions, resulting in warnings like the following (which can be easily reproduced by running the hotplug selftest in a loop):
schedext: Invalid task state transition 0 -> 3 for fish[770] WARNING: CPU: 18 PID: 787 at kernel/sched/ext.c:3862 scxsettaskstate+0x7c/0xc0 ... RIP: 0010:scxsettaskstate+0x7c/0xc0 ... Call Trace: <TASK> scxenabletask+0x11f/0x2e0 switchingtoscx+0x24/0x110 scxenable.isra.0+0xd14/0x13d0 bpfstructopslinkcreate+0x136/0x1a0 sysbpf+0x1edd/0x2c30 x64sysbpf+0x21/0x30 dosyscall64+0xbb/0x370 entrySYSCALL64afterhwframe+0x77/0x7f
This happens because we skip initialization for tasks that are already dead (with their usage counter set to zero), but we don't exclude them during the scheduling class transition phase.
Fix this by also skipping dead tasks during class swiching, preventing invalid task state transitions.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2025-39780?
CVE-2025-39780 has been classified with a severity that may lead to invalid task state transitions in the Linux kernel.
How do I fix CVE-2025-39780?
To resolve CVE-2025-39780, update to the latest version of the Linux kernel where the vulnerability has been patched.
What does CVE-2025-39780 affect?
CVE-2025-39780 affects systems running the Linux kernel with the sched_ext scheduler enabled.
What are the symptoms of CVE-2025-39780?
The symptoms of CVE-2025-39780 include warnings related to invalid task state transitions during scheduling operations.
Is it safe to use sched_ext with CVE-2025-39780 present?
Using sched_ext while CVE-2025-39780 is present can lead to system instability due to invalid task states.