VULNERABILIDAD
CVE-2026-19577 Lectura fuera de límites en el reenvío de rutas IPv6 sin dirección de capa de enlace
net_route_ipv6_packet() obtiene la dirección de capa de enlace del nexthop sin verificar que la entrada de la caché de vecinos tenga una dirección vinculada, y net_nbr_get_lladdr() devuelve un puntero fuera del array cuando idx es NET_NBR_LLADDR_UNKNOWN. Se alcanza con cada paquete IPv6 unicast recibido cuyo destino no sea local en la interfaz, con CONFIG_NET_IPV6_ROUTE habilitado por defecto.
Alerta de Nureq Monitor
Detectada 11 OCT · 16:24
CVSS 3.1
7.1ALTAPROBABILIDAD DE EXPLOTACIÓN (EPSS)
0,2 % PERCENTIL 12
EXPLOTACIÓN ACTIVA
No confirmada
EXPLOIT PÚBLICO
No conocido
Qué es CVE-2026-19577
net_route_ipv6_packet() obtiene la dirección de capa de enlace del nexthop sin verificar que la entrada de la caché de vecinos tenga una dirección vinculada, y net_nbr_get_lladdr() devuelve un puntero fuera del array cuando idx es NET_NBR_LLADDR_UNKNOWN. Se alcanza con cada paquete IPv6 unicast recibido cuyo destino no sea local en la interfaz, con CONFIG_NET_IPV6_ROUTE habilitado por defecto.
Productos y versiones afectadas
zephyrproject zephyr
Qué hacer
- Verificá si usás zephyr y en qué versión: el rango afectado figura arriba.
- Actualizá a la versión corregida que indique el fabricante en su aviso (ver referencias) o aplicá la mitigación que publique.
- Revisá registros y accesos de los sistemas expuestos para descartar que se haya aprovechado antes de corregir.
Calculadora CVSS
CVSS 3.1 · 7.1 ALTA
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H
- VECTOR DE ATAQUE (AV)
- Red adyacente
- COMPLEJIDAD DEL ATAQUE (AC)
- Baja
- PRIVILEGIOS REQUERIDOS (PR)
- Ninguno
- INTERACCIÓN DEL USUARIO (UI)
- Ninguna
- ALCANCE (S)
- Sin cambio
- CONFIDENCIALIDAD (C)
- Baja
- INTEGRIDAD (I)
- Ninguna
- DISPONIBILIDAD (A)
- Alta
Abrir la calculadora completa →
Descripción original
net_route_ipv6_packet() in subsys/net/ip/route_ipv6.c resolved the nexthop's link-layer address with net_nbr_get_lladdr(nbr->idx) without first checking whether the neighbor cache entry actually had a linked link-layer address. An unresolved neighbor carries idx == NET_NBR_LLADDR_UNKNOWN (0xff), and net_nbr_get_lladdr() in subsys/net/ip/nbr.c performs no runtime bounds check beyond a NET_ASSERT, returning &net_neighbor_lladdr[255] — roughly 2.5 KB past the end of an array whose default size is CONFIG_NET_IPV6_MAX_NEIGHBORS (8). Because the returned pointer is never NULL, the following lladdr == NULL guard does not catch it.
The function is reached from ipv6_route_packet() in subsys/net/ip/ipv6.c for every received unicast IPv6 packet whose destination is not a local address on the receiving interface; CONFIG_NET_IPV6_ROUTE is enabled by default whenever the IPv6 neighbor cache is, so no router or forwarding configuration is needed. net_route_ipv6_get_info() returns the packet's destination itself as the nexthop when a neighbor cache entry for it exists, and the cache lookup does not skip INCOMPLETE entries. An unauthenticated attacker on the same link can therefore force the unresolved state — for example by eliciting traffic to a spoofed, non-existent neighbor address so that net_ipv6_send_ns() creates an INCOMPLETE entry, or by sending a Router Advertisement with no source link-layer address option, which creates a persistently unresolved router neighbor — and then send a packet addressed to that neighbor.
The result is an out-of-bounds read at a fixed index past the neighbor link-layer address array. On builds with CONFIG_ASSERT enabled the assertion fires and the device panics, giving a repeatable remote denial of service. With assertions disabled, the stale out-of-bounds struct net_linkaddr drives a memcmp() over an attacker-uninfluenced length and, when its len byte passes the NET_LINK_ADDR_MAX_LENGTH check, up to 8 bytes of unrelated static RAM are copied into the outgoing frame's destination link-layer address and transmitted on the link, disclosing them to any listener. There is no out-of-bounds write and the offset is not attacker-controlled, which bounds the impact.
Referencias
- github.com/zephyrproject-rtos/zephyr/commit/b0b0e8973d1967114adbb9ed1611d448b5a46519PATCH
- github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-vv76-4m89-95q5
Historial de la alerta
- VULNERABILIDAD Nueva vulnerabilidad detectada.
CÓMO SE HIZOResumen traducido automáticamente al español a partir de la descripción original. Ante dudas, la descripción original y las referencias del fabricante son la fuente de verdad. Cómo funciona.