CVE-2026-98043 in Linux
Resumen
por VulDB • 2026-09-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
bpf: No inferir que un valor no es nulo (non-NULL) a partir de un puntero con un desplazamiento ilimitado.
reg_not_null() decide que un registro contiene un valor distinto de NULL basándose únicamente en su tipo. Para los tipos de punteros que permiten aritmética, el tipo solo garantiza una base distinta de NULL; en caso de tener un desplazamiento sin límite (unbounded offset), el valor del desplazamiento en tiempo de ejecución podría sumar cero y convertirse en NULL.
Considere el siguiente programa:
r6 = bpf_map_lookup_elem(map, &0); /* presente */ if (r6 == 0) return 0; r7 = bpf_map_lookup_elem(map, &1); /* ausente, NULL en tiempo de ejecución */ r8 = r7; r8 -= r6; /* puntero - puntero: escalar desconocido, -r6 */ r8 <<= 1; r8 >>= 1; /* cualquier desplazamiento no negativo es aceptado por */ /* check_reg_sane_offset_ptr() */ r6 += r8; /* verificador: valor del mapa; tiempo de ejecución: cero */ if (r7 != r6) return 0; *(u8 *)(r7 + 0); /* r7 se infiere como no nulo, pero ambos son cero */
En tiempo de ejecución, ambos registros valen cero, la comparación es verdadera y la carga falla debido a una desreferencia de puntero NULL.
Se requiere que el desplazamiento esté dentro del rango +-BPF_MAX_VAR_OFF en reg_not_null().
If you want to get best quality of vulnerability data, you may have to visit VulDB.