
CVE-2026-54477: Fehlende Sicherheits-Header im Admin-Panel (Clickjacking/XSS) - Gardyn (ICSA-26-183-03)
| Feld | Wert |
|---|---|
| CVE | CVE-2026-54477 |
| ICSA | ICSA-26-183-03 (Gardyn IoT Hub) |
| CVSS 3.1 | 5.4 (Mittel) |
| 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 (von CISA zugewiesen) | CWE-644 (Improper Neutralization of HTTP Headers for Scripting Syntax) |
| CWE (Forscher) | CWE-693 (Protection Mechanism Failure), CWE-1021 (Improper Restriction of Rendered UI Layers) |
| Forscher | Michael Groberman |
| Veröffentlicht | 2026-07-02 |
| Koordinierter Befund | Gr0m-043 (im Admin-Panel fehlen sämtliche Security-Header) |
| Feld | Wert |
|---|---|
| Hersteller | Gardyn |
| Produkt | Gardyn Home Kit, Gardyn Studio |
| Komponente | Admin-Panel (admin.gardyn.io, Netlify) |
| Betroffene Versionen | Home Firmware < master.627, Studio Firmware < master.627, Cloud API < 2.12.2026 |
Das Admin-Panel wird ohne weitere Security-Header außer HSTS ausgeliefert – keine Content-Security-Policy, kein X-Frame-Options, kein X-Content-Type-Options, keine Permissions-Policy. Dies ermöglicht Clickjacking und Cross-Site-Scripting gegen authentifizierte Admin-Sitzungen.
| Header | Wert |
|---|---|
server | Netlify |
strict-transport-security | max-age=31536000 |
cache-control | no-cache |
| Fehlender Header | Konsequenz |
|---|---|
| Content-Security-Policy | Keine Einschränkung der Skriptquellen; injizierte Skripte werden uneingeschränkt ausgeführt |
| X-Frame-Options | Panel kann in einem iframe des Angreifers eingebettet werden (Clickjacking) |
| X-Content-Type-Options | MIME-Sniffing |
| Permissions-Policy | Kamera / Mikrofon / Geolokalisierung uneingeschränkt |
| Referrer-Policy | Vollständige URL (inkl. Tokens) kann über den Referer preisgegeben werden |
| Cross-Origin-Opener/Resource-Policy | Keine Cross-Origin-Isolation |
Ohne X-Frame-Options / CSP frame-ancestors kann ein unsichtbares Overlay-iframe über einer authentifizierten Admin-Sitzung bei einem Klick privilegierte Aktionen auslösen, z. B. PiReboot, DeleteUser, SwitchBannedDevice.
In Kombination mit den in Gr0m-028 identifizierten clientseitigen Injektions-Sinks (22 dangerouslySetInnerHTML-Instanzen, 35 innerHTML-Zuweisungen) bedeutet das Fehlen von CSP, dass jede erfolgreiche Payload ohne Einschränkung ausgeführt wird, was Datenexfiltration und eine Ausbreitung über Sitzungen hinweg ermöglicht.
| Aspekt | Detail |
|---|---|
| Gr0m-043 | Admin-Panel wird ohne jegliche Security-Header außer HSTS ausgeliefert; ermöglicht Clickjacking + XSS |
| CWE-Abgleich | Forscher stufte als CWE-693 / CWE-1021 ein; CISA ordnete CWE-644 zu. Beide beschreiben den Zustand fehlender Header |
| Anmerkung | Dieser Befund wurde vom Hersteller gegenüber CERT/CC im März 2026 als behoben erklärt; die Veröffentlichung als CISA-CVE hält ihn im Bundesregister als gültigen, eigenständigen Befund fest |
Gemäß ICSA-26-183-03 gibt Gardyn an, dass die bereitgestellte IoT-Hub-Infrastruktur aktualisiert wurde, um die aufgeführten Schwachstellen zu beheben. Empfohlener Kontrollsatz (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=()"
Forscher: Michael Groberman (Gr0m) · Fall: CERT/CC VU#653116 · Advisory: ICSA-26-183-03