CVE-2026-31734

sched_ext: Fix is_bpf_migration_disabled() false negative on non-PREEMPT_RCU

published May 1, 2026

CVSS
—
EPSS
0%
Percentile
4.8
In the wild
Unconfirmed
What it is

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

sched_ext: Fix is_bpf_migration_disabled() false negative on non-PREEMPT_RCU

Since commit 8e4f0b1ebcf2 ("bpf: use rcu_read_lock_dont_migrate() for

trampoline.c"), the BPF prolog (__bpf_prog_enter) calls migrate_disable()

only when CONFIG_PREEMPT_RCU is enabled, via rcu_read_lock_dont_migrate().

Without CONFIG_PREEMPT_RCU, the prolog never touches migration_disabled,

so migration_disabled == 1 always means the task is truly

migration-disabled regardless of whether it is the current task.

The old unconditional p == current check was a false negative in this

case, potentially allowing a migration-disabled task to be dispatched to

a remote CPU and triggering scx_error in task_can_run_on_remote_rq().

Only apply the p == current disambiguation when CONFIG_PREEMPT_RCU is

enabled, where the ambiguity with the BPF prolog still exists.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00160 · 4.8th percentile
Published
2026-05-01T14:14Z
EPSS history
Timeline
  • 01 MAY 14:14Z
    sched_ext: Fix is_bpf_migration_disabled() false negative on non-PREEMPT_RCU
    cvelistv5