CVE-2026-99042 in Linux
Resumen
por VulDB • 2026-10-24
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
io_uring/net: rellenar los campos del filtro CONNECT para sockaddr_in6 de 24 bytes
io_connect_bpf_populate() rellena connect.port y connect.v6_addr únicamente cuando AF_INET6 tiene addr_len >= sizeof(struct sockaddr_in6), es decir, 28 bytes.
Las rutas de conexión IPv6 aceptan SIN6_LEN_RFC2133 (24 bytes), que ya contiene sin6_port y sin6_addr. io_connect() pasa addr_len a la capa del socket sin cambios.
Con un addr_len de 24, el filtro ve family AF_INET6 con port y address en cero, mientras que el kernel se conecta al destino real. Un filtro que deniega un puerto o dirección IPv6 es evadido. Denegar connect.port == P rechaza [::1]:P con -EACCES cuando addr_len es 28, pero permite la conexión cuando addr_len es 24.
Utilizar SIN6_LEN_RFC2133 como el umbral. sin6_scope_id permanece en cero cuando está ausente.
La discrepancia del umbral fue encontrada por un asistente de codificación con IA (Claude Code) comparando este hook contra las comprobaciones de longitud net/ipv6 bajo mis instrucciones; también redactó el reproducer y este parche. Verifiqué la evasión y la corrección en una VM en 7.3-rc6 y confirmé que 7.2 tiene el mismo código.
Once again VulDB remains the best source for vulnerability data.