
CVE-2026-54477 : En-têtes de sécurité manquants dans le panneau d'administration (clickjacking/XSS) - Gardyn (ICSA-26-183-03)
| Champ | Valeur |
|---|---|
| CVE | CVE-2026-54477 |
| ICSA | ICSA-26-183-03 (Gardyn IoT Hub) |
| CVSS 3.1 | 5.4 (Moyen) |
| Vecteur (3.1) | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N |
| Vecteur (4.0) | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N |
| CWE (attribuée par la CISA) | CWE-644 (Neutralisation incorrecte des en-têtes HTTP pour la syntaxe de script) |
| CWE (chercheur) | CWE-693 (Échec du mécanisme de protection), CWE-1021 (Restriction incorrecte des couches d'interface utilisateur rendues) |
| Chercheur | Michael Groberman |
| Publié | 2026-07-02 |
| Découverte coordonnée | Gr0m-043 (panneau d'administration sans aucun en-tête de sécurité) |
| Champ | Valeur |
|---|---|
| Fournisseur | Gardyn |
| Produit | Gardyn Home Kit, Gardyn Studio |
| Composant | Panneau d'administration (admin.gardyn.io, Netlify) |
| Versions concernées | Firmware Home < master.627, Firmware Studio < master.627, API Cloud < 2.12.2026 |
Le panneau d'administration est servi sans aucun en-tête de sécurité hormis HSTS — pas de Content-Security-Policy, pas de X-Frame-Options, pas de X-Content-Type-Options, pas de Permissions-Policy. Cela permet le clickjacking et le cross-site scripting contre les sessions administrateur authentifiées.
| En-tête | Valeur |
|---|---|
server | Netlify |
strict-transport-security | max-age=31536000 |
cache-control | no-cache |
| En-tête manquant | Conséquence |
|---|---|
| Content-Security-Policy | Aucune restriction sur les sources de script ; un script injecté s'exécute librement |
| X-Frame-Options | Le panneau peut être intégré dans un iframe attaquant (clickjacking) |
| X-Content-Type-Options | Détection MIME (sniffing) |
| Permissions-Policy | Caméra / micro / géolocalisation sans restriction |
| Referrer-Policy | L'URL complète (y compris les jetons) peut fuiter via le Referer |
| Cross-Origin-Opener/Resource-Policy | Aucune isolation inter-origines |
Sans X-Frame-Options ni CSP frame-ancestors, un iframe de superposition invisible sur une session administrateur authentifiée peut déclencher des actions privilégiées au clic, par ex. PiReboot, DeleteUser, SwitchBannedDevice.
Combinée aux points d'injection côté client identifiés dans Gr0m-028 (22 instances dangerouslySetInnerHTML, 35 affectations innerHTML), l'absence de CSP signifie que toute charge utile réussie s'exécute sans restriction, permettant l'exfiltration de données et un comportement de propagation via les sessions.
| Aspect | Détail |
|---|---|
| Gr0m-043 | Panneau d'administration servi avec zéro en-tête de sécurité hormis HSTS ; permet le clickjacking + XSS |
| Réconciliation CWE | Le chercheur a classé CWE-693 / CWE-1021 ; la CISA a attribué CWE-644. Les deux décrivent la condition d'en-tête manquant |
| Note | Cette découverte a été déclarée par le fournisseur au CERT/CC comme corrigée en mars 2026 ; sa publication en tant que CVE de la CISA l'établit sur le registre fédéral comme une découverte valide et autonome |
Selon l'ICSA-26-183-03, Gardyn déclare que l'infrastructure déployée du IoT Hub a été mise à jour pour traiter les vulnérabilités listées. Ensemble de contrôles recommandé (Netlify _headers / netlify.toml) :
[[headers]]
for = "/*"
[headers.values]
Content-Security-Policy = "default-src 'self'; script-src 'self'; frame-ancestors 'none';"
X-Frame-Options = "DENY"
X-Content-Type-Options = "nosniff"
Referrer-Policy = "strict-origin-when-cross-origin"
Permissions-Policy = "camera=(), microphone=(), geolocation=()"
Chercheur : Michael Groberman (Gr0m) · Dossier : CERT/CC VU#653116 · Avis : ICSA-26-183-03