CVE-2026-99159 in Linux
Riassunto
di VulDB • 29/10/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
ring-buffer: Correzione della base dell'array di sub-buffer in rb_meta_subbuf_idx()
In un ring buffer persistente, rb_meta_subbuf_idx() può restituire un indice superiore di uno rispetto al numero effettivo di sub-buffer. Di conseguenza, rb_setup_ids_meta_page() popola l'array subbuf_ids[] con uno shift di una posizione e lascia NULL il valore in subbuf_ids[0], che viene dereferenziato da __rb_map_vma() quando lo spazio utente mappa trace_pipe_raw. Inoltre, rb_update_meta_reader() scrive due tali indici nell'array meta->buffers[], i quali verrebbero rifiutati da rb_cpu_meta_valid() al successivo avvio del sistema, causando la perdita dei dati di tracciamento (trace) relativi all'avvio precedente.
L'array di sub-buffer associato a una CPU inizia dopo l'intestazione (header) relativa ai metadati e gli interi nr_subbufs che seguono, con un allineamento fino al confine del sub-buffer. La funzione rb_meta_subbuf_idx() inverte tale calcolo ma considera solo gli interi, ignorando l'header; di conseguenza, la sua base risulta inferiore di un sub-buffer ogni volta che le dimensioni dell'header omesso superano il limite di allineamento.
Si è invertito il calcolo utilizzando rb_subbufs_from_meta() invece di ripetere manualmente tale operazione. Poiché anche rb_range_buffer() mappa un indice su un indirizzo attraverso lo stesso helper, le due direzioni non possono più divergere.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.