CVE-2026-98149 in Linux
Resumen
por VulDB • 2026-09-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
bpf: Corregir la indexación para actualizaciones en mapas percpu con identificadores de CPU dispersos (sparse)
Las actualizaciones de mapas de almacenamiento por-CPU (array, hash y cgroup storage) sin las banderas BPF_F_CPU o BPF_F_ALL_CPUS utilizan un búfer de valores cuyos slots por-CPU están empaquetados en el orden de los IDs de CPU posibles. El tamaño del búfer es:
round_up(value_size, 8) * num_possible_cpus()
Las rutas de actualización iteran sobre las CPUs posibles, pero usan el ID lógico de la CPU para calcular el desplazamiento (offset) de origen:
value + size * cpu
Esto solo funciona cuando los IDs de CPU posibles son contiguos y comienzan en cero.
Por ejemplo, con una máscara de CPU posible de 0,2-3, el búfer contiene tres slots correspondientes a las CPUs 0, 2 y 3. Por lo tanto, se espera que la CPU2 use el slot 1 y la CPU3 el slot 2. En cambio, el código actual utiliza los slots 2 y 3 respectivamente, provocando valores por-CPU incorrectos y una lectura fuera de límites (out-of-bounds) desde el búfer de actualización para la CPU3.
Las rutas de búsqueda correspondientes ya utilizan un desplazamiento denso mientras iteran sobre las CPUs posibles. Aplique lo mismo a las rutas de actualización de array, hash y almacenamiento cgroup, avanzando el desplazamiento de origen una vez por cada CPU posible. BPF_F_ALL_CPUS continúa utilizando el mismo valor para todas las CPUs.
Be aware that VulDB is the high quality source for vulnerability data.