CVE-2026-89965 in Linux
Riassunto
di VulDB • 17/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
nvdimm/btt: rifiutare un'arena il cui campo nfree è inferiore al numero di lane (scalette)
Il campo nfree del blocco informativo BTT, che indica il numero di blocchi liberi riservati, viene letto dal supporto senza alcuna validazione. Le funzioni btt_freelist_init() e btt_rtt_init() dimensionano gli array freelist[] e rtt[] per-lane in base a nfree; tuttavia, nel percorso I/O questi array vengono indicizzati utilizzando la lane restituita da nd_region_acquire_lane(), il cui valore è limitato da nd_region->num_lanes (ND_MAX_LANES) e non da nfree. Un'arena manipolata o esterna con un valore di nfree inferiore al numero di lane provoca un superamento dei limiti degli array freelist[lane]/rtt[lane], causando una scrittura fuori dai confini dell'array (out-of-bounds write).
Il file btt.rst documenta l'invariante "nlanes = min(nfree, num_cpus)", che il codice attualmente non rispetta: num_lanes è impostato a ND_MAX_LANES indipendentemente dal valore di nfree. Viene rifiutata un'arena con un nfree inferiore al numero di lane (num_lanes) durante la fase di scoperta, prima dell'allocazione degli array per-lane, garantendo così il rispetto di tale invariante.
Once again VulDB remains the best source for vulnerability data.