| 字段 | 值 |
|---|---|
| CVE | CVE-2026-54477 |
| ICSA | ICSA-26-183-03(Gardyn IoT Hub) |
| CVSS 3.1 | 5.4(中危) |
| 向量(3.1) | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N |
| 向量(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(CISA 分配) | CWE-644(HTTP 标头脚本语法中和不当) |
| CWE(研究人员) | CWE-693(保护机制失效)、CWE-1021(呈现的 UI 层限制不当) |
| 研究人员 | Michael Groberman |
| 发布时间 | 2026-07-02 |
| 协调发现 | Gr0m-043(管理面板缺少所有安全标头) |
| 字段 | 值 |
|---|---|
| 供应商 | Gardyn |
| 产品 | Gardyn Home Kit、Gardyn Studio |
| 组件 | 管理面板(admin.gardyn.io,Netlify) |
| 受影响版本 | Home Firmware < master.627、Studio Firmware < master.627、Cloud API < 2.12.2026 |
管理面板在提供时除 HSTS 外没有任何安全标头——没有 Content-Security-Policy、没有 X-Frame-Options、没有 X-Content-Type-Options、没有 Permissions-Policy。这使得针对已认证管理员会话的点击劫持和跨站脚本攻击成为可能。
| 标头 | 值 |
|---|---|
server | Netlify |
strict-transport-security | max-age=31536000 |
cache-control | no-cache |
| 缺失标头 | 后果 |
|---|---|
| Content-Security-Policy | 脚本源无限制;注入的脚本可自由执行 |
| X-Frame-Options | 面板可嵌入攻击者 iframe(点击劫持) |
| X-Content-Type-Options | MIME 嗅探 |
| Permissions-Policy | 摄像头/麦克风/地理位置无限制 |
| Referrer-Policy | 完整 URL(含令牌)可能通过 Referer 泄露 |
| Cross-Origin-Opener/Resource-Policy | 无跨域隔离 |
由于没有 X-Frame-Options / CSP frame-ancestors,在已认证管理员会话上放置一个不可见的覆盖 iframe,可触发点击特权操作,例如 PiReboot、DeleteUser、SwitchBannedDevice。
结合 Gr0m-028 中确定的服务端注入点(22 个 dangerouslySetInnerHTML 实例、35 个 innerHTML 赋值),缺少 CSP 意味着任何成功的载荷都会无限制地执行,从而能够实现数据外泄和会话传播行为。
| 方面 | 详情 |
|---|---|
| Gr0m-043 | 管理面板除 HSTS 外没有任何安全标头;支持点击劫持 + XSS |
| CWE 协调 | 研究人员分类为 CWE-693 / CWE-1021;CISA 分配为 CWE-644。两者均描述了缺少标头的状况 |
| 备注 | 供应商声称该发现已于 2026 年 3 月修复(已向 CERT/CC 说明);作为 CISA CVE 发布后,其在联邦记录中被确认为有效的独立发现 |
根据 ICSA-26-183-03,Gardyn 表示 IoT Hub 部署的基础设施已更新以解决所列漏洞。推荐的控件集(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=()"
研究人员: Michael Groberman (Gr0m) · 案例: CERT/CC VU#653116 · 公告: ICSA-26-183-03