Sur un billet de blog technique daté du 6 mars 2026, l’auteur décrit le processus ayant mené à l’obtention d’un shell sur la caméra TP-Link Tapo C260, en documentant trois vulnérabilités liées (CVE-2026-0651, CVE-2026-0652, CVE-2026-0653). Un avis de TP-Link couvre les bases, tandis que l’article expose le cheminement de découverte et l’enchaînement d’exploits.

  • Découverte LFD (CVE-2026-0651) 🔓 L’analyse statique de /bin/main (serveur HTTP intégré avec gestion SOAP/ONVIF) révèle un gestionnaire GET qui concatène le chemin demandé à « /www » après un simple décodage d’URL, sans aucune sanitisation. Le décodage de « ../ » permet une traversée de répertoires conduisant à une divulgation de fichiers locaux (LFD). L’accès nécessite une session authentifiée, mais un compte invité suffit.

  • RCE invité via config interne (CVE-2026-0652) et élévation de privilèges (CVE-2026-0653) 🧩 Ne trouvant pas d’entrée utilisateur directe vers des appels shell, l’auteur cible des valeurs de configuration internes lues par le binaire puis transmises à des commandes via popen_wrapper. Une fonction qui construit une commande « get_oemid » intègre un paramètre de configuration non validé (provenant de tp_manage/info/dev_name). En abusant de l’API mobile (commandes de type “set”) qui écrit des clés JSON vers des chemins de configuration arbitraires, il est possible d’injecter un payload dans dev_name, puis de déclencher la fonction de changement de région pour obtenir une exécution de commande. La possibilité pour un invité d’écrire des valeurs sensibles conduit à une élévation de privilèges.

  • Méthodologie 🛠️ L’auteur combine reversing (Ghidra, recherche de accept, http_get_handle, logs) et tests dynamiques. La LFD a permis de lire l’état de configuration en temps réel et d’identifier la correspondance entre paramètres d’API mobile et chemins JSON internes, essentielle pour localiser la variable non validée et construire la chaîne d’exploitation.

  • IOCs et TTPs

    • IOCs: Aucun indicateur opérationnel spécifique (IP, hash, artefact malveillant) n’est fourni; un domaine cloud TP-Link légitime est mentionné à titre d’exemple de flux applicatif.
    • TTPs:
      • Reversing firmware et binaire monolithique (/bin/main), cartographie des surfaces SOAP/ONVIF/HTTP.
      • Path traversal via décodage d’URL sans normalisation (LFD authentifiée, invités inclus).
      • Abus d’API mobile: écriture de chemins JSON de config arbitraires avec commandes “set”.
      • Injection de commande via popen_wrapper alimenté par une valeur de config non validée (dev_name).
      • Chaîne en deux temps: 1) écritures de config détournées, 2) déclenchement d’un handler de région pour exécuter la commande.
  • Conclusion 📦 L’article montre comment des primitives « faibles » (lecture de fichiers) se chaînent pour atteindre une RCE et une élévation de privilèges sur un appareil IoT récent. Il s’agit d’une publication technique visant à documenter la démarche de découverte et l’enchaînement des vulnérabilités.

🧠 TTPs et IOCs détectés

TTP

Reversing firmware et binaire monolithique (/bin/main), cartographie des surfaces SOAP/ONVIF/HTTP. Path traversal via décodage d’URL sans normalisation (LFD authentifiée, invités inclus). Abus d’API mobile: écriture de chemins JSON de config arbitraires avec commandes ‘set’. Injection de commande via popen_wrapper alimenté par une valeur de config non validée (dev_name). Chaîne en deux temps: 1) écritures de config détournées, 2) déclenchement d’un handler de région pour exécuter la commande.

IOC

Aucun indicateur opérationnel spécifique (IP, hash, artefact malveillant) n’est fourni; un domaine cloud TP-Link légitime est mentionné à titre d’exemple de flux applicatif.


🔗 Source originale : https://spaceraccoon.dev/getting-shell-tapo-c260-webcam/