
Recherche en sécurité sur une caméra IP grand public basée sur le SoC Fullhan FH8626V100 (modèle AJL30PG0803).
Recherche en sécurité sur une caméra IP grand public basée sur le SoC Fullhan FH8626V100 (modèle AJL30PG0803), ayant abouti à l'attribution de six CVE couvrant un accès API non authentifié, la divulgation d'identifiants en clair et une compromission totale non authentifiée de l'appareil via une injection de commandes système.
Article complet : Breaking Into My Own IP Camera
| Champ | Valeur |
|---|---|
| SoC / Plateforme | FH8626V100 (Fullhan Microelectronics, famille FH86xx) |
| Modèle de l'appareil | AJL30PG0803 |
| Version du firmware | v201222.1007 |
| Architecture | ARM, Linux embarqué |
| Capteur de la caméra | JX-F37P (2MP, 1080p@30fps, MIPI) |
| Application compagnon | CareCam Pro |
| API Web | Points de terminaison basés sur PSIA (/PSIA/*) |
| Services clés | HTTP (80), HTTPS (443), Telnet (23), RTSP (8554), port de contrôle personnalisé (1300), service d'instantanés (6688) |
Cette combinaison firmware/SoC est réutilisée sur de nombreuses caméras IP grand public de marques différentes, la surface affectée est donc plus large qu'une simple référence produit.
/PSIA/Security/AAA/users sans authentification pour récupérer les identifiants administrateur en clair (CVE-2026-51406), ou passer directement à l'étape 2.<SYSTEM>...</SYSTEM> conçue sur TCP/1300 pour exécuter une commande qui réinitialise le mot de passe du compte root (CVE-2026-51402)./app/userdata/ifcfg.wlan0 pour les identifiants Wi-Fi et/ou pivoter plus loin dans le réseau local (CVE-2026-51407).
Chaque étape individuellement ne nécessite aucune authentification, à l'exception de la connexion Telnet finale, qui est trivialement satisfaite par la réinitialisation du mot de passe effectuée par l'attaquant à l'étape 2, ce qui signifie que la chaîne complète, de l'accès réseau au shell root, ne nécessite aucun identifiant valide à aucun moment..
├── README.md
├── advisory/
│ └── fullhan-ipcam-advisory.txt # Avis de style Exploit-DB + PoC
├── poc/
│ ├── command_payloads.txt # Commandes d'abus amusantes (jouer de l'audio, redémarrer la caméra)
│ ├── data_extraction.py # PoC de lecture non authentifiée (utilisateurs, informations de l'appareil, instantané)
│ └── full_chain.py # Chaîne RCE -> réinitialisation du mot de passe root -> shell telnet
├── metasploit/
│ ├── command_payloads.txt # Commandes d'abus amusantes (jouer de l'audio, redémarrer la caméra)
│ ├── data_extraction.py # PoC de lecture non authentifiée (utilisateurs, informations de l'appareil, instantané)
│ └── full_chain.py # Chaîne RCE -> réinitialisation du mot de passe root -> shell telnet
Un attaquant sur le réseau local ou un segment adjacent (ou avec une exposition Internet, si l'appareil est redirigé par port) peut obtenir un accès root complet à l'appareil, visualiser le flux vidéo en direct de la caméra, exfiltrer les identifiants Wi-Fi de la victime et utiliser l'appareil compromis comme point de pivot vers le réseau interne de la victime — le tout sans avoir besoin d'identifiants valides.
| Date | Événement |
|---|---|
| 31-03-2026 | Vulnérabilités découvertes |
| 01-04-2026 | Fournisseur contacté |
| AUCUNE | Réponse du fournisseur |
Cette recherche a été menée sur un appareil appartenant à l'auteur. Le code de ce dépôt est fourni uniquement pour la recherche défensive, l'ingénierie de détection et les tests autorisés. Ne l'utilisez pas contre des appareils que vous ne possédez pas ou pour lesquels vous ne disposez pas d'une autorisation explicite de test.
Découvert et signalé par Amir Aliu
Libre d'utilisation pour la recherche personnelle, l'éducation et les tests de sécurité autorisés. L'utilisation commerciale, la revente ou la redistribution dans le cadre d'un produit/service payant n'est pas autorisée sans autorisation écrite.
| ID CVE | Constat | CVSS 3.1 | CWE |
|---|
| CVE-2026-51402 | Injection de commandes système aveugle non authentifiée via le protocole personnalisé <SYSTEM> sur TCP/1300 | 8.8 | CWE-78 |
| CVE-2026-51403 | Accès en lecture/écriture non authentifié aux points de terminaison de l'API PSIA | 8.8 | CWE-306, CWE-284 |
| CVE-2026-51404 | Divulgation d'instantanés en direct non authentifiée via TCP/6688 | 6.5 | CWE-200 |
| CVE-2026-51405 | Telnet BusyBox activé par défaut, exposant un shell root une fois les identifiants obtenus | 8.8 | CWE-287 |
| CVE-2026-51406 | Divulgation d'identifiants en clair via /PSIA/Security/AAA/users | 6.5 | CWE-522 |
| CVE-2026-51407 | Identifiants Wi-Fi en clair stockés dans /app/userdata/ifcfg.wlan0 | 7.4 | CWE-319 |
| 16-07-2026 | CVE réservées |
| 30-06-2026 | Divulgation publique (article de blog) |