CVE-2026-13768: Identifiants IoT Hub Privilégiés — Énumération de Flotte, RCE sur les Appareils et Pivot vers le Réseau Domestique
Avis
| Champ | Valeur |
|---|
| CVE | CVE-2026-13768 |
| ICSA | ICSA-26-183-03 (Gardyn IoT Hub) |
| CVSS 3.1 | 10.0 (Critique) |
| Vecteur (3.1) | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:L |
| Vecteur (4.0) | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:L/SC:H/SI:H/SA:L |
| CWE | CWE-798 (Utilisation d'Identifiants Codés en Dur) |
| Chercheur | Michael Groberman |
| Publié | 2026-07-02 |
| Découverte coordonnée | Gr0m-012 (contrôle de flotte IoT Hub) + Gr0m-013 (accès réseau latéral) |
Produit
| Champ | Valeur |
|---|
| Fournisseur | Gardyn |
| Produit | Gardyn Home Kit, Gardyn Studio |
| Composant | Plan de contrôle Azure IoT Hub, API Cloud, firmware des appareils |
| Versions affectées | Firmware Home < master.627, Firmware Studio < master.627, API Cloud < 2.12.2026 |
Résumé
Gardyn expose une clé d'accès partagée privilégiée iothubowner. L'accès à cette clé permet à un utilisateur malveillant d'invoquer une fonction Azure IoT Hub Registry Manager qui renvoie les informations de connexion pour tous les appareils Gardyn Home Kit et Studio. La même clé permet l'exécution de commandes arbitraires sur un appareil connecté spécifique et peut permettre à l'attaquant de pivoter vers d'autres appareils sur le réseau domestique de la victime.
Il s'agit de l'avis IoT Hub (ICSA-26-183-03) cataloguant le rayon d'impact du plan de contrôle de l'identifiant administratif. Il est lié, mais distinct, de CVE-2025-1242 dans ICSA-26-055-03, qui cataloguait l'exposition de l'identifiant iothubowner via des réponses API non authentifiées, du reverse engineering d'application mobile et de l'analyse du firmware. CVE-2026-13768 capture ce que la possession de cet identifiant permet : énumération de toute la flotte, exécution de code à distance par appareil, et mouvement latéral vers le LAN domestique.
Détails de la Vulnérabilité
L'identifiant
La politique d'accès partagé iothubowner est l'identifiant le plus privilégié dans Azure IoT Hub. Microsoft la documente comme administration de service backend uniquement, jamais destinée à être distribuée aux clients.
| Permission | Capacité |
|---|
| RegistryRead | Énumérer chaque appareil de la flotte |
Énumération de la flotte (Registry Manager)
Avec la clé, IoTHubRegistryManager renvoie les informations de connexion pour l'ensemble de la flotte :
from azure.iot.hub import IoTHubRegistryManager
manager = IoTHubRegistryManager.from_connection_string(hub_conn_string) # iothubowner
online = manager.query_iot_hub("SELECT * FROM devices WHERE connectionState = 'Connected'")
| Métrique | Nombre | Source |
|---|
| Appareils enregistrés | 138,160+ | Enregistrement CISA / avis |
| Appareils énumérés | 129,949 | Énumération par le chercheur, déc. 2025 |
| En ligne lors de l'énumération | 38,831 |
Exécution de code à distance par appareil
Les méthodes directes cloud-à-appareil atteignent n'importe quel appareil. Combinées avec le chemin d'injection de commande dans le gestionnaire upgrade() de l'appareil (CVE-2025-29631), une méthode C2D permet l'exécution de commandes root sur l'appareil cible :
from azure.iot.hub.models import CloudToDeviceMethod
method = CloudToDeviceMethod(method_name="upgrade", payload={
"uri": "http://x; <command> ", # injection sink in upgrade()
"path": "/tmp/x", "services": []})
manager.invoke_device_method(device_id, method)
Pivot vers le réseau domestique
Chaque appareil se trouve sur le WiFi domestique du client. L'exécution de commandes sur l'appareil fournit un point d'appui derrière le pare-feu domestique, à partir duquel un attaquant peut scanner le LAN et interagir avec d'autres hôtes (routeurs, NAS, caméras, serrures connectées, ordinateurs personnels). L'appareil est le point de pivot ; il est déjà à l'intérieur du réseau. C'est la condition de mouvement latéral Gr0m-013.
Correspondance avec les découvertes coordonnées
Selon ICSA-26-183-03, Gardyn déclare que l'infrastructure déployée IoT Hub a été mise à jour pour corriger les vulnérabilités listées.
- Renouveler l'identifiant administratif
iothubowner (rompt l'accès initial).
- Délivrer des identifiants par appareil avec privilèges minimaux ; retirer les clés administratives à l'échelle de la flotte de tout chemin accessible par un client.
- Éliminer le point d'injection de commande
upgrade() (CVE-2025-29631) pour supprimer la primitive RCE.
- Appliquer une liste blanche de commandes pour les méthodes directes.
- Activer la journalisation des accès IoT Hub et les alertes d'anomalie (le fournisseur a déclaré à CISA qu'aucune journalisation des accès n'existait sur les points de terminaison affectés pendant la fenêtre d'exposition).
Chercheur: Michael Groberman (Gr0m) · Cas: CERT/CC VU#653116 · Avis: ICSA-26-183-03