In the Linux kernel, the following vulnerability has been resolved:
maple_tree: fix MA_STATE_PREALLOC flag in mas_preallocate()
Temporarily clear the preallocation flag when explicitly requesting
allocations. Pre-existing allocations are already counted against the
request through mas_node_count_gfp(), but the allocations will not happen
if the MA_STATE_PREALLOC flag is set. This flag is meant to avoid
re-allocating in bulk allocation mode, and to detect issues with
preallocation calculations.
The MA_STATE_PREALLOC flag should also always be set on zero allocations
so that detection of underflow allocations will print a WARN_ON() during
consumption.
User visible effect of this flaw is a WARN_ON() followed by a null pointer
dereference when subsequent requests for larger number of nodes is
ignored, such as the vma merge retry in mmap_region() caused by drivers
altering the vma flags (which happens in v6.6, at least)
Additional Descriptions (1)
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: maple_tree: corrección del indicador MA_STATE_PREALLOC en mas_preallocate(). Borra temporalmente el indicador de preasignación al solicitar asignaciones explícitamente. Las asignaciones preexistentes ya se contabilizan en la solicitud mediante mas_node_count_gfp(), pero las asignaciones no se realizarán si el indicador MA_STATE_PREALLOC está activado. Este indicador evita la reasignación en modo de asignación masiva y detecta problemas con los cálculos de preasignación. El indicador MA_STATE_PREALLOC debe estar siempre activado en asignaciones cero para que la detección de asignaciones por desbordamiento imprima un WARN_ON() durante el consumo. El efecto visible para el usuario de esta falla es un WARN_ON() seguido de una desreferencia de puntero nulo cuando se ignoran solicitudes posteriores de un mayor número de nodos, como el reintento de fusión de vma en mmap_region() causado por controladores que alteran los indicadores de vma (al menos en la versión 6.6).