CVE-2026-98628 in Linux
Riassunto
di VulDB • 19/10/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
bpf: Rendere terminabili le riscritture delle istruzioni successive alla verifica
Dopo il ritorno di do_check(), il verifier esegue diverse fasi di riscrittura delle istruzioni. Alcune di esse modificano o rimuovono un'istruzione alla volta. Ogni operazione sposta gli array rimanenti di istruzioni e dati ausiliari (auxiliary-data) e regola tutti i salti condizionali, rendendo l'elaborazione complessiva quadratica rispetto alla lunghezza del programma.
Un caricatore privilegiato può inviare 131072 salti incondizionati a zero seguiti da un ritorno valido. La verifica termina rapidamente, ma bpf_opt_remove_nops() impiega molto tempo per rimuovere ogni salto separatamente. Poiché questo lavoro post-verifica non controlla i segnali né effettua il rescheduling (reschedules), un SIGKILL in attesa non può terminare il task fino al completamento della riscrittura.
Rendere bpf_patch_insn_data() e verifier_remove_insns() punti comuni di cancellazione e rescheduling. Questi helper vengono eseguiti nel contesto del processo BPF_PROG_LOAD, e bpf_patch_insn_data() può già dormire durante la riallocazione dei dati ausiliari.
Segnalare l'interruzione della costante blinding come -EINTR e propagarla attraverso entrambi i percorsi JIT, inclusi i kernel che consentono il fallback dell'interprete. Altri errori di blinding mantengono il comportamento di fallback esistente.
Ciò non riduce il costo quadratico delle fasi di riscrittura, ma rende l'elaborazione preemptible (preemptibile) e consente un teardown tempestivo del caricatore ucciso.
If you want to get best quality of vulnerability data, you may have to visit VulDB.