
Tres vulnerabilidades no autenticadas en el protocolo de control WiFi local de la dashcam Thinkware U3000: escritura arbitraria de archivos, lectura arbitraria de archivos y divulgación de credenciales WiFi en texto plano. CVE-2026-101053, CVE-2026-101054, CVE-2026-101055.
Tres vulnerabilidades en el protocolo de control WiFi local de la dashcam Thinkware U3000, descubiertas mediante ingeniería inversa de la aplicación oficial para Android y confirmadas contra hardware real. Las tres requieren únicamente acceso a la red local: sin acceso físico al dispositivo, sin autenticación previa y sin cooperación del propietario del dispositivo.
Divulgado a Thinkware el 2026-06-21. La ventana de divulgación de 30 días ha cerrado con solo un acuse de recibo no técnico.
Las dashcams son una categoría inusual para este tipo de exposición. Graban continuamente los movimientos de un vehículo y con frecuencia cambian de manos a través de alquileres, gestión de flotas y ventas de autos usados. Quien tiene acceso actualmente al vehículo no necesariamente controla la red en la que está configurado. Combinado con una primitiva de escritura arbitraria de archivos y cero autenticación en el protocolo de control, esto va más allá de una preocupación por la privacidad. También es una preocupación por la manipulación: cualquier archivo en el dispositivo, no solo el video, puede ser alterado o reemplazado sin el conocimiento del propietario.
Esta tampoco es la primera vez que una vulnerabilidad de esta forma aparece en una dashcam Thinkware. El investigador independiente geo-chen divulgó previamente varios problemas en el modelo relacionado F800 Pro; véase geo-chen/Thinkware-Dashcam. Esos generalmente requerían acceso físico o al sistema de archivos local para explotarse. Los hallazgos a continuación no requieren ninguno de los dos: el acceso a la red por sí solo es suficiente, y el hallazgo de escritura de archivos es una capacidad más fuerte que cualquier cosa en ese conjunto previo.
Nota sobre el modelo afectado: todos los hallazgos a continuación fueron confirmados contra el Thinkware U3000 base. Thinkware también vende una variante separada "U3000 Pro"; no se ha probado si comparte la misma implementación del protocolo.
CVE: CVE-2026-101053 (VulDB #410915)
Análisis completo:
findings/01-arbitrary-file-write.md
Producto: Thinkware U3000 Dashcam
Componente afectado: Protocolo de control TCP (comando puerto 7878 / datos puerto 8787), sin autenticación
Vector de ataque: Cualquier dispositivo en la misma red local puede escribir contenido controlado por el atacante en cualquier ruta absoluta del sistema de archivos del dispositivo.
El protocolo de control del dispositivo expone un comando PUT_FILE que escribe bytes proporcionados por el atacante en una ruta absoluta proporcionada por el atacante, sin ninguna validación de ruta ni sandboxing. Confirmado escribiendo un archivo directamente en el directorio /tmp del dispositivo, el mismo directorio que contiene su propia configuración WiFi (wpa_supplicant.conf) y al menos un script de shell (hidraw0.sh), y leyéndolo de vuelta byte por byte para confirmar la ubicación exacta.

START_SESSION -> SET_CLNT_INFO -> APP_CONNECT.PUT_FILE con param establecido en una ruta fuera de donde la aplicación oficial escribiría legítimamente.{"rval": 0, "msg_id": 1286} inmediatamente, luego envía una NOTIFICATION asíncrona (msg_id 7) confirmando la finalización.LS en el directorio padre confirma que el archivo está presente con el nombre exacto solicitado, junto a archivos del sistema.GET_FILE en la misma ruta lee el contenido de vuelta para una comparación byte por byte contra lo que se envió.CVE: CVE-2026-101054 (VulDB #410916)
Análisis completo:
findings/02-arbitrary-file-read.md
Producto: Thinkware U3000 Dashcam
Componente afectado: Protocolo de control TCP (comando puerto 7878 / datos puerto 8787), sin autenticación
Vector de ataque: Cualquier dispositivo en la misma red local puede listar y leer cualquier ruta absoluta del sistema de archivos del dispositivo, no solo el video grabado.
Los comandos LS y GET_FILE del mismo protocolo enumeran y leen cualquier ruta absoluta sin restricción. Confirmado leyendo directamente el wpa_supplicant.conf en vivo del dispositivo, que contiene su SSID WiFi real y contraseña en texto plano. Este es el espejo del lado de lectura del Hallazgo 1: misma causa raíz, dirección opuesta, y una ruta mecánicamente distinta a las mismas credenciales expuestas en el Hallazgo 3.
START_SESSION -> SET_CLNT_INFO -> APP_CONNECT.LS en /tmp confirma que wpa_supplicant.conf está presente, junto a otros archivos del sistema (hidraw0.sh, aws.dat, resolv.conf, etc).GET_FILE con param: "/tmp/wpa_supplicant.conf" devuelve el tamaño del archivo, luego el contenido completo se transmite por el socket de datos exactamente como lo haría para un archivo de video.ssid=/psk= que coinciden con la red configurada real de la cámara.CVE: CVE-2026-101055 (VulDB #410917)
Análisis completo:
findings/03-wifi-credential-disclosure.md
Producto: Thinkware U3000 Dashcam
Componente afectado: Protocolo de control TCP (puerto 7878), sin autenticación
Vector de ataque: Cualquier dispositivo en la misma red local puede recuperar la contraseña WiFi de la cámara directamente, sin autenticación y sin acceso previo requerido.
Una consulta de estado dedicada, GET_STATUS "wifi_info", devuelve el SSID WiFi del dispositivo y la contraseña en texto plano directamente. Este es un mecanismo diferente al del Hallazgo 2, que no requiere acceso al sistema de archivos en absoluto, solo una lectura de estado normal del protocolo.
START_SESSION -> SET_CLNT_INFO -> APP_CONNECT.GET_STATUS con param: "wifi_info".{"rval": 0, "msg_id": 2050, "type": "wifi_info", "param": [{"ssid": "<real SSID>"}, {"password": "<real plaintext password>"}, {"mac": "<real MAC>"}]}.