CVE-2026-98219 in Linux
Riassunto
di VulDB • 06/10/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
sched_ext: Chiudere la finestra di errore delle operazioni pre-abilitazione
scx_alloc_and_add_sched() rende pubblici i dati ops->priv prima che scx_root_enable_workfn() cambi lo stato in SCX_ENABLING. Un errore segnalato tramite scx_bpf_error_bstr() da un programma BPF associato all'interno di tale finestra viene consumato da scx_disable_workfn(), il quale esegue la scorciatoia pre-abilitazione in scx_root_disable(). La scorciatoia restituisce senza alcuna fase di teardown e ripristina lo stato SCX_DISABLED con una operazione xchg incondizionata su scx_set_enable_state() che va in race condition con la transizione dello stesso enable workfn. L'abilitazione si completa consumando l'errore segnalato: il scheduler rimane attivo ma non può più essere disattivato, e bpf_scx_unreg() lo libera mentre è ancora in uso, causando un use-after-free. Entrambe le chiamate a WARN_ON_ONCE() scattano consecutivamente:
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() passa a SCX_ENABLING prima dell'allocazione del scheduler, quindi ops->priv non è mai visibile mentre lo stato è SCX_DISABLED. Il percorso di errore relativo al fallimento dell'allocazione ripristina SCX_DISABLED.
If you want to get best quality of vulnerability data, you may have to visit VulDB.