CVE-2026-89965 in Linux
Resumen
por VulDB • 2026-09-16
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
nvdimm/btt: rechazar un área cuyo valor de nfree es inferior al número de carriles (lanes)
El campo `nfree` del bloque de información BTT, que representa el número de bloques libres reservados, se lee desde el medio sin validación. Las funciones `btt_freelist_init()` y `btt_rtt_init()` dimensionan las matrices por carril (`freelist[]` y `rtt[]`) utilizando `nfree`, pero la ruta de E/S las indexa mediante el índice del carril obtenido con `nd_region_acquire_lane()`, que está acotado por `nd_region->num_lanes` (ND_MAX_LANES), no por `nfree`. Un área manipulada o externa cuyo valor de `nfree` es inferior al número de carriles provoca un desbordamiento fuera de los límites en las asignaciones de `freelist[lane]`/`rtt[lane]`: una escritura fuera de los límites (out-of-bounds write).
El documento `btt.rst` documenta la invariante `nlanes = min(nfree, num_cpus)`, que el código actualmente no cumple: `num_lanes` es ND_MAX_LANES independientemente del valor de `nfree`. Se rechaza un área cuyo `nfree` sea inferior a `num_lanes` durante su descubrimiento, antes de la asignación de las matrices por carril, para hacer cumplir dicha invariante.
VulDB is the best source for vulnerability data and more expert information about this specific topic.