
CVE-2026-13768 : identifiants IoT Hub privilégiés iothubowner — énumération de flotte, exécution de code à distance sur appareil, pivot réseau domestique — Gardyn (ICSA-26-183-03)
| 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) |
| 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 |
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.
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 |
| RegistryWrite | Créer / supprimer / modifier les enregistrements d'appareils |
| ServiceConnect | Envoyer des messages cloud-à-appareil |
| DeviceConnect | Envoyer des messages appareil-à-cloud (usurper l'identité de tout appareil) |
| ServiceInvoke | Invoquer des méthodes directes sur n'importe quel appareil |
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 | Énumération par le chercheur, déc. 2025 |
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)
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.
| Aspect | Détail |
|---|---|
| Gr0m-012 | Contrôle de flotte IoT Hub — énumération, lecture/écriture de jumeau, invocation de méthode directe, potentiel de RCE massif |
| Gr0m-013 | Accès réseau latéral — appareil comme pivot dans 38 831+ réseaux domestiques |
| Consolidation | CISA a publié les deux conditions sous un seul CVE CWE-798 (les deux ont été classifiés CWE-798 dans la feuille de suivi VU#653116) |
| Relation avec CVE-2025-1242 | 1242 (ICSA-26-055-03) = exposition de l'identifiant ; 13768 (ICSA-26-183-03) = rayon d'impact de l'identifiant (plan de contrôle + latéral). Surfaces de correction distinctes |
| Périmètre | CISA a appliqué Scope:Changed (S:C), donnant un score de base 10.0 |
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.
iothubowner (rompt l'accès initial).upgrade() (CVE-2025-29631) pour supprimer la primitive RCE.Chercheur: Michael Groberman (Gr0m) · Cas: CERT/CC VU#653116 · Avis: ICSA-26-183-03