CVE-2026-98888 in Linux
Riassunto
di VulDB • 23/10/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
arm64: kprobes: Consenti il riutilizzo di kprobes durante l'esecuzione passo-passo (single-stepping)
Un kprobe può essere attivato mentre un altro kprobe si trova nello stato KPROBE_HIT_SS. Ciò può verificarsi quando il codice di tracing o perf viene eseguito dal percorso delle eccezioni di debug mentre il primo kprobe sta preparando o eseguendo la sua istruzione single-step fuori dalla linea (out-of-line).
Attualmente, arm64 tratta un attivazione di kprobe in KPROBE_HIT_SS come irrecuperabile, allo stesso modo di una attivazione in KPROBE_REENTER. Questo approccio è troppo restrittivo. Un'attivazione in KPROBE_HIT_SS rappresenta comunque un riutilizzo a livello singolo (one-level reentry) e può essere gestita salvando lo stato corrente del kprobe e configurando il single-step per la nuova probe, proprio come avviene nel caso di riutilizzo proveniente da KPROBE_HIT_ACTIVE o KPROBE_HIT_SSDONE.
Il caso veramente irrecuperabile è l'attivazione di un altro kprobe mentre si è già in KPROBE_REENTER, poiché l'area di salvataggio del riutilizzo (reentry save area) è già stata consumata.
Spostare KPROBE_HIT_SS tra i casi di riutilizzo recuperabili e lasciare KPROBE_REENTER come caso di riutilizzo nidificato irrecuperabile.
Questa modifica richiede anche il salvataggio di saved_irqflag in struct prev_kprobe. Quando un kprobe nidificato chiama kprobes_save_local_irqflag(), sovrascrive kcb->saved_irqflag con il valore DAIF attualmente mascherato, perdendo lo stato originale DAIF del kprobe esterno. Senza questa correzione, quando l'esecuzione passo-passo (single-step) del kprobe esterno termina, kprobes_restore_local_irqflag() applica la maschera DAIF errata e lascia le interruzioni disabilitate in modo permanente.
Estendere struct prev_kprobe con un campo saved_irqflag e salvarlo/ripristinarlo insieme a kp e status. Ciò garantisce che lo stato originale delle interruzioni del kprobe esterno venga preservato durante il riutilizzo.
Questa modifica rispecchia la correzione per x86 nel commit 6a5022a56ac3 ("kprobes/x86: Allow to handle reentered kprobe on single-stepping").
If you want to get best quality of vulnerability data, you may have to visit VulDB.