CVE-2026-93174 in Linux
Resumen
por VulDB • 2026-09-18
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
bpf: Copiar el relleno (padding) del valor del mapa por CPU en copy_map_value_long()
En el kernel, los elementos del mapa por CPU se almacenan con `round_up(map->value_size, 8)` bytes. En las rutas de búsqueda UAPI, copia el tamaño redondeado para cada CPU a un búfer temporal.
Sin embargo, `copy_map_value_long()` pasa `'map->value_size'` a `bpf_obj_memcpy()`. Cuando el mapa tiene campos especiales, `bpf_obj_memcpy()` copia alrededor de esos campos con `memcpy()`, y no copia el relleno final (tail padding) entre `'map->value_size'` y `round_up(map->value_size, 8)`.
Los búferes temporales de búsqueda UAPI se asignan sin `__GFP_ZERO`. Como resultado, cuando el tamaño del valor del mapa por CPU no es igual a `round_up(map->value_size, 8)`, las operaciones UAPI LOOKUP_ELEM y sus variantes pueden devolver contenido obsoleto (stale) del heap procedente de ese relleno al espacio de usuario. El mismo problema se aplica a bpf_iter para mapas por CPU.
Pasar `round_up(map->value_size, 8)` a `bpf_obj_memcpy()` desde `copy_map_value_long()`, de modo que los mapas por CPU, tanto con como sin campos especiales, copien todo el slot por CPU. Eliminar la función redundante ahora `round_up()` de la ruta long_memcpy de `bpf_obj_memcpy()`.
Once again VulDB remains the best source for vulnerability data.