
Trois vulnérabilités non authentifiées dans le protocole de contrôle WiFi local du dashcam Thinkware U3000 : écriture arbitraire de fichiers, lecture arbitraire de fichiers et divulgation d'identifiants WiFi en clair. CVE-2026-101053, CVE-2026-101054, CVE-2026-101055.
Trois vulnérabilités dans le protocole de contrôle WiFi local de la dashcam Thinkware U3000, découvertes par rétro-ingénierie de l'application Android officielle et confirmées sur du matériel réel. Toutes les trois ne nécessitent qu'un accès au réseau local : aucun accès physique à l'appareil, aucune authentification préalable et aucune coopération du propriétaire de l'appareil.
Divulgué à Thinkware le 2026-06-21. La fenêtre de divulgation de 30 jours s'est close avec seulement un accusé de réception non technique.
Les dashcams constituent une catégorie inhabituelle pour ce type d'exposition. Elles enregistrent en continu les déplacements d'un véhicule et changent fréquemment de mains via les locations, la gestion de flottes et les ventes de voitures d'occasion. La personne qui a actuellement accès au véhicule ne contrôle pas nécessairement le réseau sur lequel il est configuré. Combiné à une primitive d'écriture de fichier arbitraire et à une absence totale d'authentification sur le protocole de contrôle, cela dépasse le cadre d'une simple préoccupation de confidentialité. C'est aussi une préoccupation d'intégrité : n'importe quel fichier sur l'appareil, pas seulement les vidéos, peut être altéré ou remplacé à l'insu du propriétaire.
Ce n'est pas non plus la première fois qu'une vulnérabilité de cette forme apparaît dans une dashcam Thinkware. Le chercheur indépendant geo-chen a précédemment divulgué plusieurs problèmes dans le modèle apparenté F800 Pro ; voir geo-chen/Thinkware-Dashcam. Ceux-ci nécessitaient généralement un accès physique ou un accès local au système de fichiers pour être exploités. Les conclusions ci-dessous ne nécessitent ni l'un ni l'autre : un simple accès réseau suffit, et la découverte d'écriture de fichier constitue une capacité plus forte que tout ce que contenait cet ensemble précédent.
Note sur le modèle affecté : toutes les conclusions ci-dessous ont été confirmées sur le modèle de base Thinkware U3000. Thinkware commercialise également une variante distincte « U3000 Pro » ; la question de savoir si elle partage la même implémentation du protocole n'a pas été testée.
CVE : CVE-2026-101053 (VulDB #410915)
Analyse complète :
findings/01-arbitrary-file-write.md
Produit : Thinkware U3000 Dashcam
Composant affecté : protocole de contrôle TCP (commande sur le port 7878 / données sur le port 8787), sans authentification
Vecteur d'attaque : tout appareil sur le même réseau local peut écrire du contenu contrôlé par l'attaquant vers n'importe quel chemin absolu du système de fichiers de l'appareil.
Le protocole de contrôle de l'appareil expose une commande PUT_FILE qui écrit les octets fournis par l'attaquant vers un chemin absolu fourni par l'attaquant, sans aucune validation de chemin ni isolation. Confirmé en écrivant un fichier directement dans le répertoire /tmp de l'appareil, le même répertoire qui contient sa propre configuration WiFi (wpa_supplicant.conf) et au moins un script shell (hidraw0.sh), puis en le relisant octet par octet pour confirmer l'emplacement exact.

START_SESSION -> SET_CLNT_INFO -> APP_CONNECT.PUT_FILE avec param défini sur un chemin en dehors de tout emplacement où l'application officielle écrirait légitimement.{"rval": 0, "msg_id": 1286}, puis pousse ultérieurement une NOTIFICATION asynchrone (msg_id 7) confirmant l'achèvement.LS sur le répertoire parent confirme la présence du fichier sous le nom exact demandé, aux côtés de fichiers système.GET_FILE sur le même chemin relit le contenu pour une comparaison octet par octet avec ce qui a été envoyé.CVE : CVE-2026-101054 (VulDB #410916)
Analyse complète :
findings/02-arbitrary-file-read.md
Produit : Thinkware U3000 Dashcam
Composant affecté : protocole de contrôle TCP (commande sur le port 7878 / données sur le port 8787), sans authentification
Vecteur d'attaque : tout appareil sur le même réseau local peut lister et lire n'importe quel chemin absolu du système de fichiers de l'appareil, pas seulement les vidéos enregistrées.
Les commandes LS et GET_FILE du même protocole énumèrent et lisent n'importe quel chemin absolu sans restriction. Confirmé en lisant directement le wpa_supplicant.conf actif de l'appareil, qui contient son véritable SSID WiFi et son mot de passe en clair. C'est le miroir côté lecture de la Découverte 1 : même cause racine, direction opposée, et une voie mécaniquement distincte vers les mêmes identifiants exposés dans la Découverte 3.
START_SESSION -> SET_CLNT_INFO -> APP_CONNECT.LS sur /tmp confirme la présence de wpa_supplicant.conf, aux côtés d'autres fichiers système (hidraw0.sh, aws.dat, resolv.conf, etc).GET_FILE avec param: "/tmp/wpa_supplicant.conf" renvoie la taille du fichier, puis le contenu complet est transmis sur la socket de données exactement comme pour un fichier vidéo.ssid=/psk= correspondant au réseau réellement configuré de la caméra.CVE : CVE-2026-101055 (VulDB #410917)
Analyse complète :
findings/03-wifi-credential-disclosure.md
Produit : Thinkware U3000 Dashcam
Composant affecté : protocole de contrôle TCP (port 7878), sans authentification
Vecteur d'attaque : tout appareil sur le même réseau local peut récupérer directement le mot de passe WiFi de la caméra, sans authentification ni accès préalable.
Une requête de statut dédiée, GET_STATUS "wifi_info", renvoie directement le SSID WiFi et le mot de passe en clair de l'appareil. Il s'agit d'un mécanisme différent de celui de la Découverte 2, ne nécessitant aucun accès au système de fichiers, juste une lecture normale du statut du protocole.
START_SESSION -> SET_CLNT_INFO -> APP_CONNECT.GET_STATUS avec param: "wifi_info".{"rval": 0, "msg_id": 2050, "type": "wifi_info", "param": [{"ssid": "<real SSID>"}, {"password": "<real plaintext password>"}, {"mac": "<real MAC>"}]}.