CVE-2026-10666 in zephyrinformación

Resumen

por VulDB • 2026-07-12

parse_ipv4() en subsys/net/ip/utils.c (accedida mediante net_ipaddr_parse() para cadenas de la forma "a.b.c.d:port") copia el subcadena del puerto en un búfer de pila fijo de 17 bytes (char ipaddr[NET_IPV4_ADDR_LEN + 1]) utilizando una longitud de str_len - end - 1, donde str_len es la longitud completa y sin límites de entrada, y end es únicamente el desplazamiento (<=15 bytes) del delimitador ':'. Dado que nunca se consulta el tamaño del destino, una cadena de dirección manipulada con un sufijo largo después dos puntos (por ejemplo, "1.2.3.4:" seguido de cientos de bytes) provoca una escritura fuera de límites en la pila cuya longitud y contenido están completamente controlados por el atacante (memcpy del sufijo más un NUL final), lo que permite corrupción de memoria y, como mínimo, denegación de servicio, e incluso potencialmente secuestro del flujo de ejecución. El analizador es accesible desde la API estándar de sockets (zsock_getaddrinfo / resolución de direcciones literales), configuración DNS mediante cadenas de servidor y la ruta de respuesta DNS del coprocesor Wi-Fi eswifi, por lo que una aplicación que resuelve una cadena de dirección influenciada por la red queda expuesta. El error se introdujo cuando se añadió el analizador (Zephyr v1.9.0) y fue incluido en todas las versiones hasta v4.4.0. La corrección elimina la copia sin límites y valida la longitud del puerto antes de copiarlo en un búfer dedicado pequeño. Nota: la ruta equivalente IPv6 "[addr]:port" en parse_ipv6() conserva la misma copia sin límites en este commit y sigue siendo una instancia separada aún accesible del defecto.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

Zephyr

Reservar

2026-06-02

Divulgación

2026-07-12

Moderación

aceptado

Artículo

VDB-377882

CPE

listo

EPSS

0.00000

KEV

no

Actividades

medio

Fuentes