
CVE-2025-1242: Stringa di connessione iothubowner hardcoded — Gardyn Home Kit (ICSA-26-055-03)
| Campo | Valore |
|---|---|
| CVE | CVE-2025-1242 |
| ICSA | ICSA-26-055-03 |
| CVSS 3.1 | 9.1 (Critico) |
| Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
| CWE | CWE-798 (Uso di credenziali hard-coded) |
| Ricercatore | Michael Groberman — Gr0m |
| Pubblicata | 2026-02-24 |
| Campo | Valore |
|---|---|
| Vendor | Gardyn |
| Prodotto | Gardyn Home Kit 1.0, 2.0, 3.0, 4.0; Gardyn Studio 1.0, 2.0 |
| Componente | API cloud, applicazione mobile, firmware del dispositivo |
| Versioni interessate | Firmware < master.622, App mobile < 2.11.0, API cloud < 2.12.2026 |
La credenziale amministrativa di Azure IoT Hub (criterio di accesso condiviso iothubowner) è estraibile attraverso molteplici vettori, tra cui risposte API non autenticate, reverse engineering dell'applicazione mobile e analisi del firmware del dispositivo. Questa credenziale garantisce il controllo amministrativo sull'IoT Hub di Gardyn, che gestisce architetturalmente tutti i dispositivi registrati.
Il criterio di accesso condiviso iothubowner è la credenziale con i privilegi più elevati in Azure IoT Hub. Consente di:
La documentazione Microsoft afferma: "Il criterio iothubowner dispone di tutti i permessi e deve essere utilizzato con estrema cautela. È destinato esclusivamente all'amministrazione dei servizi backend e NON dovrebbe mai essere distribuito ai client."
Un'unica stringa di connessione iothubowner fornisce accesso amministrativo all'IoT Hub di Gardyn.
La credenziale è stata esposta attraverso molteplici canali indipendenti:
1. Endpoint API non autenticato
Un endpoint di provisioning dei dispositivi non autenticato restituiva la credenziale amministrativa a qualsiasi chiamante. Non era richiesta alcuna autenticazione. L'endpoint era accessibile a chiunque su Internet.
Dettagli della richiesta rimossi — Percorsi specifici degli endpoint, nomi dei campi e strutture delle richieste sono stati rimossi da questa divulgazione pubblica per ridurre la possibilità di utilizzo da parte degli attaccanti.
Il campo della credenziale amministrativa è stato successivamente rimosso dalla risposta di questo endpoint (correzione parziale), ma l'endpoint restituisce ancora credenziali a livello di dispositivo senza autenticazione.
2. Endpoint non autenticato di enumerazione degli utenti
Un endpoint non autenticato di elenco utenti restituiva i record completi di tutti i 134.215 utenti registrati. Ogni record includeva la credenziale amministrativa — 134.215 copie in un'unica risposta API.
Dettagli della richiesta rimossi — Percorsi specifici degli endpoint e nomi dei campi sono stati rimossi da questa divulgazione pubblica per ridurre la possibilità di utilizzo da parte degli attaccanti.
Questo endpoint esponeva anche dati personali sensibili di tutti gli utenti, tra cui nomi completi, indirizzi email, numeri di telefono, numeri parziali di carte di pagamento, ID utente sequenziali (che consentono IDOR), ID dei dispositivi e credenziali di connessione.
Secondo CISA ICSA-26-055-03, questo percorso di esposizione è stato corretto nelle versioni di fix pubblicate.
3. Applicazione mobile
La credenziale è incorporata nel bundle dell'applicazione React Native (bytecode Hermes in index.android.bundle). Viene inoltre distribuita tramite Firebase Remote Config, che registra le credenziali nel logcat di Android nelle build di debug.
4. Firmware del dispositivo
La stringa di connessione è presente nei file del firmware del dispositivo in /usr/local/etc/gardyn/ e viene registrata in chiaro su syslog durante l'inizializzazione.
La credenziale è esposta almeno dal maggio 2019 (più di 6 anni, in base alla disponibilità dell'endpoint API). Il vendor è migrato da un IoT Hub precedente ([REDACTED — nome IoT Hub]) all'hub attuale ([REDACTED — nome IoT Hub]) ma ha riutilizzato la stessa chiave di accesso condiviso, il che significa che chiunque abbia catturato la credenziale durante la finestra di esposizione originale mantiene ancora l'accesso.
Il vendor ha confermato che sugli endpoint interessati non esisteva alcuna registrazione degli accessi, il che significa che la portata degli accessi non autorizzati durante la finestra di esposizione di oltre 6 anni non può essere determinata.
Il vendor ha dichiarato a CISA che sugli endpoint interessati non esisteva alcuna registrazione degli accessi durante la finestra di esposizione. La pagina pubblica sulla sicurezza del vendor è disponibile all'indirizzo https://mygardyn.com/security/.
Un attaccante in possesso della credenziale iothubowner può:
upgrade() vulnerabile all'iniezione di comandi (CVE-2025-29631)Combinata con CVE-2025-29631, questa credenziale consente l'esecuzione remota di codice come root sui dispositivi che utilizzano le credenziali condivise (verificata sul dispositivo del ricercatore).
Questa credenziale, combinata con il nome host dell'IoT Hub, ha consentito l'accesso amministrativo diretto all'IoT Hub che gestisce la flotta di dispositivi Gardyn interessata. Le capacità di una credenziale iothubowner sono documentate da Microsoft (vedere Impatto sopra e la documentazione Azure collegata in Riferimenti). CISA ha valutato questa CVE con un punteggio CVSS di 9.1 (Critico).
Le altre CVE presenti in ICSA-26-055-03 sono documentate come risultati indipendenti; l'esposizione di questa credenziale è un problema distinto da quelle vulnerabilità, sebbene un singolo attaccante in possesso di più risultati potrebbe combinarle in alcuni scenari.
La documentazione Microsoft afferma esplicitamente: "Il criterio iothubowner dispone di tutti i permessi e deve essere utilizzato con estrema cautela. È destinato esclusivamente all'amministrazione dei servizi backend e NON dovrebbe mai essere distribuito ai client."
Mitigazioni consigliate per i proprietari dei dispositivi:
Correzione consigliata per il vendor:
iothubownerSegnalato da Michael Groberman — Gr0m a CISA.
| Permesso | Descrizione | Livello di rischio |
|---|
| RegistryRead | Lettura del registro dei dispositivi (elenca tutti i dispositivi) | ALTA |
| RegistryWrite | Modifica del registro dei dispositivi (aggiungi/elimina dispositivi) | CRITICO |
| ServiceConnect | Invio di messaggi da cloud a dispositivo | CRITICO |
| DeviceConnect | Invio di messaggi da dispositivo a cloud (impersona qualsiasi dispositivo) | CRITICO |
| ServiceInvoke | Chiamata di metodi diretti su qualsiasi dispositivo | CRITICO |
| Servizio | Scopo |
|---|
| Azure IoT Hub Device Provisioning Service (DPS) | Provisioning automatico delle credenziali per singolo dispositivo con certificati X.509 |
| Scoped Shared Access Policies | Criteri di accesso con privilegi minimi (ad es. device, service, registryRead) |
| Azure Monitor / IoT Hub Diagnostics | Registrazione degli accessi e rilevamento delle anomalie per le operazioni dell'IoT Hub |
| Data | Evento |
|---|
| 2025-10-14 | Segnalazione iniziale al vendor |
| 2025-12-11 | Segnalazione a CERT/CC |
| 2026-01-22 | Credenziale amministrativa iothubowner di Azure IoT Hub ruotata (osservabile: la chiave precedentemente distribuita ha smesso di funzionare) |
| 2026-02-24 | ICSA-26-055-03 pubblicato (iniziale) |
| 2026-04-02 | ICSA-26-055-03 Aggiornamento A |