El proyecto OpenWrt ha publicado la versión 24.10.8, que corrige la vulnerabilidad crítica CVE-2026-53921 (CVSS 3.1: 9.8) — un stack buffer overflow en el demonio odhcpd, encargado de procesar las peticiones DHCPv6. Un atacante no autenticado con acceso de red al puerto UDP 547 puede enviar un paquete DHCPv6 REQUEST especialmente manipulado y sobrescribir el búfer de pila, lo que en un equipamiento embebido típico, que suele carecer de mecanismos de protección, con alta probabilidad conduce a la ejecución arbitraria de código con privilegios de root. Ya está disponible públicamente código de exploit en Python. Los usuarios de la rama 24.10 deben actualizar a la 24.10.8, y los de la rama 25.12 a la 25.12.5.
Anatomía técnica de CVE-2026-53921
Según el advisory oficial, la vulnerabilidad afecta a dos puntos independientes de desbordamiento en la ruta de procesamiento de peticiones DHCPv6. En ambos casos, opciones IA especialmente construidas llenan un búfer de pila fijo de 512 bytes, tras lo cual el código sigue escribiendo datos de la respuesta sin comprobar el espacio restante.
La primera vía de explotación requiere la creación previa de cinco asociaciones IA_NA mediante un paquete SOLICIT; la segunda se dispara con un único paquete REQUEST manipulado. Ambas están documentadas con scripts PoC funcionales en Python.
La criticidad se ve agravada por el hecho de que odhcpd se ejecuta con privilegios de root y que el equipamiento embebido donde normalmente se despliega OpenWrt suele carecer de mecanismos de protección como stack canaries y ASLR. Esto convierte el paso de un simple desbordamiento de búfer a una ejecución completa de código en un escenario realista, y no en una mera posibilidad teórica.
Se ven afectadas todas las versiones de odhcpd hasta el commit e432dd6 inclusive, que contienen las funciones dhcpv6_ia_handle_IAs() y build_ia(). La corrección se ha implementado mediante la comprobación de la capacidad restante del búfer de respuesta antes de añadir nuevos datos.
Detalle reseñable: existe una discrepancia en la clasificación entre el advisory y las notas de la versión. El advisory agrupa ambas vías de desbordamiento bajo CVE-2026-53921, mientras que las notas del lanzamiento 24.10.8 destacan el desbordamiento de RECONF_ACCEPT como un problema adicional de alta criticidad, sin CVE propio. De forma similar, las notas de la versión describen el vector de ataque como «adyacente a la red» (Adjacent), mientras que el vector CVSS del advisory utiliza AV:N (Network). Ninguna de las fuentes explica esta discrepancia.
Vulnerabilidades adicionales en la versión 24.10.8
Además de la vulnerabilidad principal, la versión corrige todo un abanico de problemas en servicios activados por defecto:
- odhcpd: escrituras fuera de los límites del búfer, use-after-free, fuga de memoria, denegación de servicio, lectura fuera de los límites de la pila, suplantación mediante proxy de Neighbor Discovery
- uhttpd: tres vulnerabilidades de HTTP request smuggling
- CVE-2026-62948: inyección de nombre de host a través de DHCPv6, que conduce a stored XSS al visualizar la página de arrendamientos en LuCI
- CVE-2026-62947: salto de ruta en cgi-io que permite leer archivos arbitrarios accesibles para root. Requiere una sesión autenticada con permiso de subida y una plantilla de acceso a archivos acorde — no se trata de lectura anónima de ficheros
Vulnerabilidades en LuCI: parches aún no integrados
En paralelo al lanzamiento, la empresa Hacker House publicó los resultados de una auditoría de LuCI y uhttpd con fuzzing asistido por IA. Se identificaron inyección de comandos, salto de ruta y XSS en componentes opcionales de LuCI. Durante la preparación de los parches, OpenWrt descubrió además una vulnerabilidad adicional de stored XSS y la ausencia de protección frente a CSRF.
Hallazgos clave, según el pull request nº 8878:
- luci-app-commands: el carácter de tubería (pipe) eludía la lista de argumentos permitidos, lo que permitía ejecutar comandos como root. OpenWrt determinó que la vía funciona sin cookie de sesión ni token CSRF si el administrador configura un comando como simultáneamente público y parametrizable
- luci-app-ddns: inyección de comandos a través de la opción ddns_dateformat y salto de ruta mediante service_name
- luci-proto-openvpn: inyección de comandos a través del parámetro keytype y salto de ruta mediante key-directory
- luci-app-olsr: un nodo malicioso de la red mesh puede anunciar un nombre de host que incluya un script, el cual se ejecutará en el navegador del administrador al visualizar la página de vecinos OLSR
Es importante tener en cuenta el contexto: estas vulnerabilidades no son RCE no autenticadas universales que afecten a todos los routers OpenWrt. La vía no autenticada a través de luci-app-commands requiere instalar la aplicación opcional y una configuración deliberada por parte del administrador de un comando público y parametrizable. Las demás vías de ejecución de comandos requieren acceso autenticado a LuCI. A fecha de 28 de julio, ambos pull requests (nº 8878 y ddns-scripts) seguían abiertos y no se habían fusionado con la rama principal.
IA en la detección y corrección
Este caso es notable por el uso extensivo de la IA en ambos lados del proceso. Hacker House describe una metodología de «inference fuzzing» en cuatro etapas: el modelo Qwen 3.6 35B Heretic genera un amplio conjunto de posibles vulnerabilidades y, a continuación, un modelo de mayor precisión (según los investigadores, Anthropic Claude Opus 4.6 para proyectos abiertos) filtra los falsos positivos. La verificación final se realiza manualmente. Por parte de OpenWrt, varios commits en el pull request incluyen la etiqueta «Assisted-by: Claude:claude-opus-5», y la revisión automatizada apunta al uso de Claude Code.
Recomendaciones
- Actualice la firmware de inmediato a OpenWrt 24.10.8 o 25.12.5 a través del OpenWrt Firmware Selector
- Actualice los paquetes instalados por separado — no se actualizan automáticamente junto con la firmware
- Revise la configuración de luci-app-commands: asegúrese de que ningún comando esté configurado como público (public=1) y parametrizable (param=1) al mismo tiempo
- Elimine las aplicaciones opcionales de LuCI que no utilice, especialmente luci-app-bmx7, luci-app-olsr y luci-app-commands
- Revise los permisos delegados en LuCI, limitando el acceso a cgi-io
- Planifique la migración a la rama 25.12 antes de septiembre de 2026, fecha de fin del soporte de seguridad de la rama 24.10
A fecha de 28 de julio, ni CVE-2026-53921 ni las demás vulnerabilidades descritas se habían incluido en el catálogo CISA KEV, y los materiales oficiales de OpenWrt no informaban de explotación activa en entornos reales. Sin embargo, la existencia de PoC público para una vulnerabilidad crítica en un servicio que se ejecuta como root en equipos sin ASLR hace que la ventana hasta el inicio de una explotación activa sea mínima. La actualización de la firmware debe realizarse en cuestión de horas, no de días.