Read the docs
TI-2023-22288 Aliases CVE-2023-41896

Fake websocket server installation permits full takeover in Home Assistant Core

Priority MEDIUM 41CWE-345Published · Updated

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

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00315 24th percentileScored 2026-11-07
Fix No fix listed No fixed version in the sources yet

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

VendorProductAffected versionsFixed inStatusSource
home-assistantcoreHome Assistant Core : < 2023.8.0; home-assistant-js-websocket: < 8.2.0—No fix listedCNA
  • 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

CPEVersionsRoleVendor
cpe:2.3:a:home-assistant:home-assistant:*:*:*:*:*:*:*:*before 2023.8.0Vulnerablehome-assistant
cpe:2.3:a:home-assistant:home-assistant-js-websocket:*:*:*:*:*:node.js:*:*before 8.2.0Vulnerablehome-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

  1. 2026-10-02 Threatist record created from CVE-2023-41896

References

  • 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
See all 15 →

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences