TP-Link Tapo C200 : clé codée en dur, buffer overflow et confidentialité à l’ère du reverse engineering assisté par l’IA
(evilsocket.net)- L’analyse du firmware de la caméra IP TP-Link Tapo C200 d’entrée de gamme via du reverse engineering assisté par l’IA a mis au jour de nombreuses vulnérabilités de sécurité
- Le firmware contient une clé privée SSL codée en dur, ce qui permet de déchiffrer le trafic HTTPS sur le même réseau
- Le processus d’analyse s’est appuyé sur des outils d’IA (Grok, GhidraMCP, Cline, etc.) afin d’automatiser la compréhension de la structure du firmware et l’analyse sémantique des fonctions
- Parmi les principales failles découvertes figurent un buffer overflow (CVE-2025-8065), un integer overflow (CVE-2025-14299) et un détournement WiFi (CVE-2025-14300), dont certaines sont exploitables à distance sans authentification
- Ce cas est considéré comme un exemple montrant que l’IA améliore l’efficacité de la recherche en sécurité tout en révélant les faiblesses structurelles des appareils IoT
Acquisition et déchiffrement du firmware
- Le reverse engineering de l’application Android Tapo a permis de découvrir le bucket S3 public de TP-Link, depuis lequel il est possible de télécharger sans authentification le firmware de tous les appareils
- Exemple de commande :
aws s3 ls s3://download.tplinkcloud.com/ --no-sign-request --recursive
- Exemple de commande :
- Le déchiffrement du firmware a été réalisé à l’aide de l’outil tp-link-decrypt
- La clé RSA peut être extraite des sources GPL publiées par TP-Link
- Le firmware déchiffré est structuré en bootloader, noyau et système de fichiers racine SquashFS
Reverse engineering assisté par l’IA
- L’analyse du firmware a été automatisée à l’aide de Ghidra, GhidraMCP, Cline, Anthropic Opus/Sonnet 4, etc.
- L’IA explique le rôle des fonctions et renomme les variables de manière plus parlante, ce qui améliore la lisibilité du code
- Ce processus a permis de cartographier les gestionnaires HTTP, le protocole de découverte et les routines de chiffrement
- Il a été confirmé que la clé privée SSL présente dans le firmware n’est pas générée au démarrage mais embarquée directement
- Un attaquant présent sur le même réseau peut donc déchiffrer le trafic HTTPS
Principales vulnérabilités
-
CVE-2025-8065 (débordement mémoire dans le parseur XML SOAP ONVIF)
- Le serveur
/bin/mainsur le port 2020 ne réalise aucun contrôle de limite sur le nombre d’éléments XML - L’envoi d’un grand volume de requêtes XML provoque un débordement mémoire et le crash de la caméra
- Score CVSS v4.0 : 7.1 (High)
- Le serveur
-
CVE-2025-14299 (integer overflow du
Content-LengthHTTPS)- Le serveur HTTPS sur le port 443 traite l’en-tête
Content-Lengthavec atoi() sans validation - Sur un système 32 bits, cela provoque un crash dû à un overflow
- Score CVSS v4.0 : 7.1 (High)
- Le serveur HTTPS sur le port 443 traite l’en-tête
-
CVE-2025-14300 (détournement WiFi)
- L’API
connectApest accessible sans authentification et reste active même après la fin de la configuration - Un attaquant peut connecter la caméra à son propre réseau et intercepter le trafic vidéo
- Score CVSS v4.0 : 8.7 (High)
- L’API
-
API de scan WiFi sans authentification (
scanApList)- Elle renvoie les SSID, BSSID, intensités de signal et paramètres de sécurité des réseaux WiFi environnants
- Des outils comme Apple BSSID Locator permettent un suivi très précis de la position GPS
- Un attaquant distant peut ainsi identifier l’emplacement réel de la caméra
Divulgation et réponse
- Premier signalement à l’équipe sécurité de TP-Link le 22 juillet 2025, avec PoC et vidéo à l’appui
- Publication après 150 jours (19 décembre), puis diffusion d’un avis de sécurité par TP-Link
- TP-Link dispose de sa propre autorité d’attribution de CVE (CNA), ce qui lui permet de contrôler directement le processus de signalement et de divulgation des vulnérabilités de ses produits
- Sur son site web, l’entreprise utilise un nombre de CVE inférieur à celui de ses concurrents comme argument marketing, ce qui soulève la question d’un conflit d’intérêts structurel
Conclusion
- Les outils d’IA maximisent l’efficacité du reverse engineering et rendent la recherche en sécurité plus accessible
- Mais des éléments comme les clés codées en dur, les API sans authentification et des parseurs fragiles révèlent une absence fondamentale de sécurité sur les appareils IoT
- Le cas TP-Link illustre de manière emblématique la question de l’équilibre entre la recherche en sécurité à l’ère de l’IA et la responsabilité des fabricants
1 commentaires
Avis sur Hacker News
Je trouve dommage que ce type d’article mélange de vrais cas d’échec avec des problèmes que même les FAANG ont du mal à résoudre pour en faire une critique
En particulier, traiter de façon critique le fait que « le dépôt de firmware de TP-Link se trouvait dans un bucket S3 public sans authentification » est une mauvaise approche
J’y vois plutôt un bon exemple d’évitement de la sécurité par l’obscurité
Ce genre d’article pourrait au contraire pousser la direction à donner de mauvaises consignes de « verrouillage renforcé »
Les textes écrits par l’IA manquent de nuances subtiles et ont tendance à présenter chaque chose comme excessivement nouvelle, bonne ou mauvaise
Ce n’est pas un mauvais article, mais il faut le lire avec prudence. La plupart des billets publiés sur HN ces jours-ci semblent avoir bénéficié d’une aide de l’IA
J’en ai moi-même écrit plusieurs, et celui-ci était vraiment intéressant
En réalité, « comment le firmware a été obtenu » est la partie la moins importante de cette histoire
Il est très probable que la plupart des autres modèles de caméras partagent des failles de sécurité similaires
Selon la page communautaire TP-Link, le dernier firmware du C200 est affiché en version 1.4.4, mais l’article mentionne la 1.4.2
Autrement dit, certaines mises à jour ont eu lieu, mais les correctifs de sécurité ne semblent pas avoir été intégrés
Beaucoup de fabricants revendent du matériel commun sous une autre marque
Billets d’analyse associés : Part 1, Part 2
C’est pour cela que la segmentation du réseau IoT est indispensable
Toutes les caméras intelligentes et tous les appareils IoT devraient être placés sur un VLAN séparé, avec un accès Internet restreint via le pare-feu
Réglages recommandés aux utilisateurs de caméras TP-Link :
Le problème des clés codées en dur est particulièrement grave et affecte toute la gamme de produits
Il n’avait pas isolé ses appareils IoT par VLAN et n’avait aucun système d’alerte
Il a donc appris ce jour-là, de manière très concrète, l’importance de la séparation par VLAN et de la restriction d’accès
J’ai l’impression que beaucoup de gens exposent leur réseau interne de la même manière
Thingino prendrait en charge le C200
Pour vérifier le chipset exact, il faut consulter OpenIPC
Si vous avez une caméra compatible, cela vaut vraiment le coup d’essayer
J’utilise toutes mes caméras sur un VLAN sans accès à Internet
L’accès local fonctionne via HomeKit, donc tout marche bien même sans application dédiée
Ce niveau de médiocrité en matière de sécurité donne presque l’impression d’être intentionnel
Il est difficile de comprendre comment on peut vendre des millions d’unités sans effectuer les vérifications de vulnérabilité les plus élémentaires
À mon avis, la plupart des caméras Wi-Fi à moins de 150 $ ont des problèmes comparables
Pour une utilisation vraiment sûre, il ne reste pratiquement qu’à fabriquer soi-même un adaptateur Wi‑Fi ↔ Ethernet non propriétaire
Une fois retranchés le matériel, l’emballage, la logistique, les tests, les retours, etc., il reste moins de 5 $ de marge par unité
Dépenser 100 000 $ de plus en développement revient alors à brûler 20 000 unités
Pour une entreprise avec une large gamme de produits comme TP-Link, ce coût peut gonfler jusqu’à des dizaines de millions de dollars par an
Au final, on se retrouve avec une logique de mise en vente avec un développement minimal
Les personnes techniquement à l’aise peuvent mettre en place un environnement purement local avec le firmware Thingino
Je me demande combien de temps le dépôt de firmware S3 de TP-Link restera ouvert
Il y a environ 990 GiB de données ; ce serait bien que quelqu’un en fasse une sauvegarde sous forme d’archive ou de torrent
J’utilise cette caméra avec Unifi + ONVIF uniquement pour des usages non critiques
Je l’ai placée sur un VLAN séparé avec accès Internet bloqué, et heureusement cela fonctionne correctement
Pour examiner les caméras, je me suis référé au site drmnsamoliu.github.io
J’ai déjà fait du reverse engineering du flux vidéo d’un drone jouet avec Ghidra et AWS Amazon Q
Cela aurait sans doute été beaucoup plus rapide avec GhidraMCP