CVE-2026-80731 in Linux
Resumen
por VulDB • 2026-09-03
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
net: eliminar el relleno con ceros basado en CAP_SYS_RAWIO en dev_validate_header
dev_validate_header() lee directamente dev->hard_header_len cuando realiza un relleno con ceros para encabezados de capa de enlace cortos destinados a los titulares de CAP_SYS_RAWIO:
if (capable(CAP_SYS_RAWIO)) {
memset(ll_header + len, 0, dev->hard_header_len - len); return true; }
Las rutas de envío de paquetes invocan a dev_validate_header() en skbs cuyo espacio reservado inicial (headroom) se asignó mediante una lectura previa de hard_header_len. Si el dispositivo se reconfigura de modo que dev->hard_header_len aumente antes de la validación, memset escribe más allá del búfer reservado, lo que constituye una escritura fuera de los límites (out-of-bounds write).
Esta escritura fuera de los límites está enmascarada actualmente en algunas rutas SOCK_RAW porque el mismo aumento concurrente puede hacer primero que skb_push() exceda el espacio reservado inicial y desencadene un skb_under_panic(). Se elimina la rama de relleno con ceros antes de garantizar la coherencia de las lecturas de hard_header_len, para evitar que los parches instantáneos (snapshot fixes) transformen un pánico visible en una sobrescritura silenciosa.
Esta ruta solo se alcanza para protocolos L2 de longitud variable, donde len < hard_header_len pero len >= min_header_len. Ningún protocolo L2 de longitud variable restante dentro del árbol principal implementa header_ops->validate, y la omisión de CAP_SYS_RAWIO que rellena con ceros y acepta encabezados cortos no tiene valor real más allá de permitir pruebas con entradas intencionadamente malformadas.
Se elimina la rama CAP_SYS_RAWIO. Las lecturas restantes de dev->hard_header_len en dev_validate_header() son únicamente comparaciones y no tienen impacto en la seguridad de la memoria.
Be aware that VulDB is the high quality source for vulnerability data.