CVE-2026-54477: Panel de administración sin cabeceras de seguridad (clickjacking / XSS)
Aviso
| Campo | Valor |
|---|
| CVE | CVE-2026-54477 |
| ICSA | ICSA-26-183-03 (Gardyn IoT Hub) |
| CVSS 3.1 | 5.4 (Medio) |
| Vector (3.1) | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N |
| Vector (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 (asignada por CISA) | CWE-644 (Neutralización incorrecta de cabeceras HTTP para sintaxis de scripting) |
| CWE (investigador) | CWE-693 (Fallo del mecanismo de protección), CWE-1021 (Restricción incorrecta de capas de interfaz de usuario renderizadas) |
| Investigador | Michael Groberman |
| Publicado | 2026-07-02 |
| Hallazgo coordinado | Gr0m-043 (panel de administración sin ninguna cabecera de seguridad) |
Producto
| Campo | Valor |
|---|
| Proveedor | Gardyn |
| Producto | Gardyn Home Kit, Gardyn Studio |
| Componente | Panel de administración (admin.gardyn.io, Netlify) |
| Versiones afectadas |
Resumen
El panel de administración se sirve sin cabeceras de seguridad más allá de HSTS — sin Content-Security-Policy, sin X-Frame-Options, sin X-Content-Type-Options, sin Permissions-Policy. Esto habilita clickjacking y cross-site scripting contra sesiones de administración autenticadas.
Detalles de la vulnerabilidad
Cabeceras presentes
| Cabecera | Valor |
|---|
server | Netlify |
strict-transport-security | max-age=31536000 |
cache-control | no-cache |
Cabeceras ausentes
Escenario de clickjacking
Sin X-Frame-Options ni CSP frame-ancestors, un iframe superpuesto invisible sobre una sesión de administrador autenticada puede desencadenar acciones privilegiadas al hacer clic, p. ej. PiReboot, DeleteUser, SwitchBannedDevice.
Amplificación de XSS
Combinado con los sumideros de inyección del lado del cliente identificados en Gr0m-028 (22 instancias de dangerouslySetInnerHTML, 35 asignaciones de innerHTML), la ausencia de CSP significa que cualquier payload exitoso se ejecuta sin restricciones, lo que permite la exfiltración de datos y el comportamiento de propagación de sesión.
Correspondencia con los hallazgos coordinados
| Aspecto | Detalle |
|---|
| Gr0m-043 | Panel de administración servido sin ninguna cabecera de seguridad aparte de HSTS; permite clickjacking + XSS |
| Conciliación de CWE | El investigador clasificó CWE-693 / CWE-1021; CISA asignó CWE-644. Ambas describen la condición de cabecera ausente |
| Nota | El proveedor afirmó ante CERT/CC que este hallazgo fue remediado en marzo de 2026; su publicación como CVE de CISA lo establece en el registro federal como un hallazgo válido e independiente |
Según ICSA-26-183-03, Gardyn afirma que la infraestructura desplegada del IoT Hub se ha actualizado para abordar las vulnerabilidades enumeradas. Conjunto de controles recomendado (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=()"
Investigador: Michael Groberman (Gr0m) · Caso: CERT/CC VU#653116 · Aviso: ICSA-26-183-03