Una vulnerabilidad crítica de Cisco IOS XE permite la carga arbitraria de archivos

Ha surgido una vulnerabilidad de seguridad crítica en el software del controlador inalámbrico Cisco IOS XE, representando una amenaza considerable para las redes empresariales. Investigadores han publicado un código de explotación de prueba de concepto (PoC) que demuestra cómo los atacantes pueden lograr la ejecución remota de código con privilegios de root.

Esta vulnerabilidad, identificada como CVE-2025-20188, ha recibido la máxima puntuación CVSS de 10.0, lo que subraya su grave impacto en los sistemas afectados.

Cisco reveló esta vulnerabilidad el 7 de mayo de 2025. Afecta a múltiples productos de controladores inalámbricos de nivel empresarial, incluidos los controladores inalámbricos Catalyst 9800-CL para la nube, los controladores inalámbricos integrados Catalyst 9800 y los controladores inalámbricos Catalyst 9800 Series. El origen de la falla reside en un token web JSON (JWT) codificado, presente en la función de descarga de imágenes del punto de acceso (AP) fuera de banda. Esto permite a atacantes remotos no autenticados eludir los mecanismos de autenticación y cargar archivos arbitrarios en sistemas vulnerables.

Los investigadores de seguridad de Horizon3.ai realizaron un análisis en profundidad comparando imágenes de firmware vulnerables y parcheadas, descubriendo la causa raíz dentro de los componentes de secuencias de comandos Lua de la plataforma web OpenResty.

La vulnerabilidad radica en los scripts ewlc_jwt_verify.lua y ewlc_jwt_upload_files.lua ubicados en /var/scripts/lua/features/, que manejan la verificación JWT y las operaciones de carga de archivos, respectivamente.

La omisión de autenticación se produce cuando el script de verificación JWT lee una clave secreta de /tmp/nginx_jwt_key. Si falta este archivo, el sistema utiliza de forma predeterminada un valor codificado de «no encontrado» como secreto, creando efectivamente un mecanismo de autenticación de puerta trasera.

Esta falla de diseño permite a los atacantes crear JWT válidos utilizando el secreto conocido y eludir los controles de seguridad por completo.

Los puntos finales vulnerables incluyen /aparchive/upload y /ap_spec_rec/upload/, que están configurados en el archivo de configuración de nginx /usr/binos/conf/nginx-conf/https-only/ap-conf/ewlc_auth_jwt.conf.

Estos puntos finales procesan cargas de archivos con tamaños de cuerpo de cliente de hasta 1536 MB y 500 MB, respectivamente, lo que brinda una amplia oportunidad para la entrega de carga útil maliciosa.

Los detalles de la vulnerabilidad son los siguientes:

  • Productos afectados: Controladores inalámbricos Catalyst 9800-CL para la nube – Controladores inalámbricos integrados Catalyst 9800 para conmutadores de las series Catalyst 9300/9400/9500 – Controladores inalámbricos de la serie Catalyst 9800 – Controlador inalámbrico integrado en AP Catalyst.
  • Impacto: Ejecución remota de código con privilegios de root.
  • Requisitos: Función de descarga de imágenes AP fuera de banda habilitada, El atacante envía solicitudes HTTPS diseñadas a /aparchive/upload o /ap_spec_rec/upload/ endpoints, Uso del secreto JWT codificado “notfound” para omitir la autenticación.
  • Puntuación CVSS 3.1: 10.0 (Crítica).

El PoC publicado demuestra cómo los atacantes pueden aprovechar las técnicas de recorrido de ruta para colocar archivos en ubicaciones arbitrarias en el sistema de destino.

Los investigadores cargaron archivos con éxito utilizando el parámetro de nombre de archivo “../../usr/binos/openresty/nginx/html/foo.txt”, evitando efectivamente las restricciones de directorio mediante la manipulación de rutas relativas.

Para lograr la ejecución remota de código, los atacantes pueden explotar el servicio de gestión de procesos internos (pvp.sh) que monitorea los cambios de archivos mediante inotifywait.

Al sobrescribir archivos de configuración y cargar archivos de activación, los atacantes pueden provocar recargas de servicios que ejecutan comandos arbitrarios con privilegios de root.

Los investigadores demostraron esta técnica modificando los archivos de configuración del servicio y extrayendo exitosamente el archivo /etc/passwd, confirmando un compromiso total del sistema.

El exploit requiere que el encabezado JWTReqId esté configurado en «cdb_token_request_id1», que los investigadores descubrieron mediante ingeniería inversa de la biblioteca compartida /usr/binos/lib64/libewlc_apmgr.so.

Este nivel de detalle técnico en la divulgación pública reduce significativamente la barrera para posibles atacantes.

Mitigación

Cisco ha publicado actualizaciones de software que abordan esta vulnerabilidad y recomienda encarecidamente aplicar parches de inmediato.

Las organizaciones que no puedan parchear inmediatamente deben desactivar la función de descarga de imágenes AP fuera de banda, que obliga a las descargas de imágenes AP a utilizar el método CAPWAP.

Esta mitigación no afecta las operaciones del cliente AP, pero elimina efectivamente el vector de ataque.

Los expertos en seguridad enfatizan que, si bien la característica vulnerable está deshabilitada de manera predeterminada, es posible que muchas implementaciones empresariales la hayan habilitado para un aprovisionamiento de AP más rápido.

Las organizaciones deben realizar una auditoría inmediata de su infraestructura inalámbrica Cisco para identificar sistemas expuestos. Es crucial implementar las medidas correctivas adecuadas antes de que los atacantes logren explotar esta vulnerabilidad crítica en entornos de producción.