El proyecto OpenWrt ha publicado actualizaciones de seguridad críticas —versiones 24.10.8 y 25.12.5— para corregir una vulnerabilidad identificada como CVE-2026-53921. Esta falla consiste en un desbordamiento de buffer en la pila (stack buffer overflow) dentro del demonio odhcpd, el servidor DHCPv6/DHCPv4/RA que se ejecuta por defecto en prácticamente todos los routers OpenWrt. Con una puntuación CVSS 3.1 de 9.8, un atacante no autenticado con acceso a la red puede ejecutar código arbitrario con privilegios de root, tomando control total del dispositivo.
¿Qué es odhcpd?
odhcpd es el demonio de servicios DHCP integrado en OpenWrt. Gestiona tanto DHCPv4 como DHCPv6, así como anuncios de router (Router Advertisements, RA). A diferencia de dnsmasq, odhcpd está habilitado de forma predeterminada en la mayoría de las instalaciones de OpenWrt y se ejecuta con privilegios de root, lo que convierte cualquier vulnerabilidad en él en un vector de ataque de máximo impacto.
Descripción Técnica de la Vulnerabilidad
CVE-2026-53921 reside en la función de serialización de respuestas DHCPv6 Identity Association (IA). Específicamente, en las funciones dhcpv6_ia_handle_IAs() y build_ia() del código fuente de odhcpd.
El Problema
Cuando odhcpd procesa un paquete DHCPv6 REQUEST maliciosamente construido, las opciones IA (IA_NA, IA_PD) manipuladas dejan espacio insuficiente en un buffer de pila fijo de 512 bytes. El código añade entonces datos adicionales a la respuesta sin realizar una comprobación de límites adecuada, provocando un desbordamiento de escritura en la pila.
Vectores de Desbordamiento
El advisory de seguridad documenta dos rutas independientes para desencadenar el overflow, ambas alcanzables enviando paquetes DHCPv6 a UDP puerto 547.
La primera ruta se activa en la función build_ia(): requiere crear cinco enlaces IA_NA previos mediante un mensaje SOLICIT, seguido de un REQUEST que combine esos cinco IAIDs válidos con siete opciones IA_NA adicionales con direcciones fuera de enlace. El código comprueba que hay espacio para la cabecera IA (16 bytes), pero no verifica que quede espacio suficiente para añadir la sub-opción de estado de 6 bytes, produciendo una escritura que desborda el buffer por al menos 2 bytes.
La segunda ruta se activa en dhcpv6_ia_handle_IAs() y no requiere pasos previos: un único REQUEST especialmente diseñado con la opción RECONF_ACCEPT, 22 opciones IA_PD no asignables y una IA_NA final es suficiente para agotar el buffer y provocar que el bloque de autenticación de 36 bytes se escriba sin comprobación de límites.
Impacto: ¿Por qué es tan grave?
Ejecución de Código como Root
odhcpd se ejecuta con privilegios de root. El desbordamiento de pila permite sobrescribir la dirección de retorno o estructuras críticas de la pila, posibilitando la ejecución de código arbitrario con los máximos privilegios del sistema.
Ausencia de Protecciones en Hardware Embebido
Un factor que agrava el riesgo es que el hardware embebido típico de routers carece frecuentemente de stack canaries y de ASLR (Address Space Layout Randomization). Esto hace que la explotación para ejecución de código sea más realista y predecible en dispositivos típicos que en sistemas de escritorio modernos.
PoC Público Disponible
El advisory de seguridad publicado en GitHub incluye código de prueba de concepto (PoC) en Python para ambas rutas de desbordamiento documentadas. Esto reduce significativamente la barrera para que actores maliciosos desarrollen exploits funcionales.
Versiones Afectadas y Parches
Versiones Vulnerables
Según el advisory oficial, todas las versiones de odhcpd que contengan las funciones dhcpv6_ia_handle_IAs() y build_ia() están afectadas. El fallo fue documentado sobre el commit e432dd6 de master, que representa la última revisión vulnerable antes de que se aplicaran los parches.
Versiones Corregidas
La rama 25.12 recibió el parche en la versión 25.12.5, publicada el 29 de junio de 2026. La rama 24.10 quedó corregida con la versión 24.10.8, publicada el 24 de julio de 2026. Las imágenes de firmware están disponibles a través del OpenWrt Firmware Selector.
Cómo se Corrigió
El parche implementa una comprobación de capacidad restante del buffer de respuesta antes de añadir los datos afectados. En build_ia(), la guardia ahora incluye el tamaño de la sub-opción de estado; en dhcpv6_ia_handle_IAs(), se verifica que queden al menos 36 bytes disponibles antes de escribir el bloque RECONF_ACCEPT.
Otras Vulnerabilidades Corregidas en la Misma Actualización
La versión 24.10.8/25.12.5 no solo corrige CVE-2026-53921, sino que aborda más de 30 vulnerabilidades en servicios centrales. En odhcpd, las más relevantes son las siguientes.
CVE-2026-53918 (Alta): use-after-free a través de un puntero dangling en el manejador DHCPv6 IA. CVE-2026-53920 (Alta): divulgación de memoria de pila mediante una opción IA_NA/IA_PD truncada. CVE-2026-53922 (Moderada): denegación de servicio pre-autenticación via underflow de size_t en el manejo de IA. CVE-2026-55606 (Moderada): stack buffer overread por desajuste de endianness en la longitud del DUID.
Además, se corrigieron fallas en uhttpd (HTTP request smuggling), cgi-io (path traversal), y múltiples vulnerabilidades en componentes LuCI que permitían escalada de privilegios a root.
Recomendaciones de Mitigación
1. Actualizar Inmediatamente
Esta es la medida más importante. Los administradores deben actualizar sus dispositivos a OpenWrt 24.10.8 (rama 24.10) o a OpenWrt 25.12.5 (rama 25.12), disponibles en el OpenWrt Firmware Selector.
2. Actualizar Paquetes Independientes
Si no es posible flashear una nueva imagen de firmware completa, actualice al menos el paquete odhcpd a través del gestor de paquetes:
opkg update && opkg upgrade odhcpd3. Aislar Interfaces de Administración
Aunque el exploit requiere acceso a la red donde escucha el servidor DHCPv6 (generalmente la LAN), se recomienda no exponer interfaces de administración (LuCI/SSH) a Internet y segmentar la red si es posible.
4. Revisar Permisos Delegados en LuCI
Dado que la misma actualización corrige múltiples fallas de escalada de privilegios en aplicaciones LuCI, los administradores deben revisar qué aplicaciones LuCI opcionales están instaladas, eliminar las que no se utilicen y auditar los permisos ACL delegados a usuarios no administrativos.
Estado de Explotación
A fecha de 28 de julio de 2026, los materiales revisados de OpenWrt no reportaron explotación activa en la naturaleza de CVE-2026-53921. La vulnerabilidad tampoco aparecía en el catálogo de Vulnerabilidades Conocidas y Explotadas (KEV) de CISA en su versión del 27 de julio de 2026. Sin embargo, la ausencia en KEV no garantiza que no haya ocurrido explotación. Dado que existe un PoC público, el riesgo de explotación masiva es elevado.
Conclusión
CVE-2026-53921 representa una de las vulnerabilidades más graves descubiertas en OpenWrt en años recientes. La combinación de ejecución remota de código pre-autenticación, privilegios de root, servicio habilitado por defecto, hardware objetivo con protecciones de memoria limitadas y disponibilidad de PoC público convierte a esta falla en una amenaza crítica para la infraestructura de red basada en OpenWrt. La actualización a 24.10.8 o 25.12.5 no es opcional: es imperativa. Cada día que pasa sin parchear aumenta exponencialmente el riesgo de compromiso total del dispositivo.
