Fake websocket server installation permits full takeover in Home Assistant Core
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- No fix listed
Attack profile from CVSS 3.1 · NVD. Fix status from CNA. Impact type from CWE-345.
Summary
Home assistant is an open source home automation. Whilst auditing the frontend code to identify hidden parameters, Cure53 detected `auth_callback=1`, which is leveraged by the WebSocket authentication logic in tandem with the `state` parameter. The state parameter contains the `hassUrl`, which is subsequently utilized to establish a WebSocket connection. This behavior permits an attacker to create a malicious Home Assistant link with a modified state parameter that forces the frontend to connect to an alternative WebSocket backend. Henceforth, the attacker can spoof any WebSocket responses and trigger cross site scripting (XSS). Since the XSS is executed on the actual Home Assistant frontend domain, it can connect to the real Home Assistant backend, which essentially represents a comprehensive takeover scenario. Permitting the site to be iframed by other origins, as discussed in GHSA-935v-rmg9-44mw, renders this exploit substantially covert since a malicious website can obfuscate the compromise strategy in the background. However, even without this, the attacker can still send the `auth_callback` link directly to the victim user. To mitigate this issue, Cure53 advises modifying the WebSocket code’s authentication flow. An optimal implementation in this regard would not trust the `hassUrl` passed in by a GET parameter. Cure53 must stipulate the significant time required of the Cure53 consultants to identify an XSS vector, despite holding full control over the WebSocket responses. In many areas, data from the WebSocket was properly sanitized, which hinders post-exploitation. The audit team eventually detected the `js_url` for custom panels, though generally, the frontend exhibited reasonable security hardening. This issue has been addressed in Home Assistant Core version 2023.8.0 and in the npm package home-assistant-js-websocket in version 8.2.0. Users are advised to upgrade. There are no known workarounds for this vulnerability.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| home-assistant | core | Home Assistant Core : < 2023.8.0; home-assistant-js-websocket: < 8.2.0 | — | No fix listed | CNA |
- core Vendorhome-assistant Affected Home Assistant Core : < 2023.8.0; home-assistant-js-websocket: < 8.2.0 Fixed in — No fix listed CNA
CPE configurations NVD · 2
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:home-assistant:home-assistant:*:*:*:*:*:*:*:* | before 2023.8.0 | Vulnerable | home-assistant |
| cpe:2.3:a:home-assistant:home-assistant-js-websocket:*:*:*:*:*:node.js:*:* | before 8.2.0 | Vulnerable | home-assistant |
- cpe:2.3:a:home-assistant:home-assistant:*:*:*:*:*:*:*:* Versions before 2023.8.0 Vulnerable ·home-assistant
- cpe:2.3:a:home-assistant:home-assistant-js-websocket:*:*:*:*:*:node.js:*:* Versions before 8.2.0 Vulnerable ·home-assistant
Remediation
No fixed version listed by the sources yet.
Timeline
- 2026-10-02 Threatist record created from CVE-2023-41896
References
More Home-assistant vulnerabilities
- TI-2023-12210 Improper authentication in home-assistant core CVSS 3.1CRITICAL 10.0
- TI-2026-25491 Home Assistant has stored XSS in history-graphs CVSS 4.0HIGH 7.3
- TI-2026-25490 Home Assistant has stored XSS in Map-card through malicious device name CVSS 4.0HIGH 7.3
- TI-2026-39212 Home Assistant: Konnected alarm-panel switch state and zone topology disclosed to unauthenticated actors on the LAN CVSS 3.1HIGH 7.6
- TI-2025-40423 Home Assistant Core before v2025.8.0 is vulnerable to Directory Traversal. CVSS 3.1MEDIUM 4.0
- TI-2023-22289 Lack of XFO header allows clickjacking in Home Assistant Core CVSS 3.1CRITICAL 9.6
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences