🔴 严重 | CVE-2026-64825 — Home Assistant Core before 2026.6.0 contains a pat...
🔴 【深度分析】严重安全漏洞:CVE-2026-64825
CVSS 评分: 严重(9.0)🔴 状态: Deferred 发布时间: 2026-07-21
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-64825 |
| CVSS 评分 | 9.0 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:L/SC:N/SI:H/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| CWE 分类 | CWE-22 |
| 发布时间 | 2026-07-21 |
| 最后更新 | 2026-07-21 |
| 状态 | Deferred |
| 数据来源 | disclosure@vulncheck.com |
CVSS 评分:9.0(严重)
CVSS 向量:CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:L/SC:N/SI:H/SA:L
危害等级: 严重(Critical)
漏洞概述
CVE-2026-64825 是 Home Assistant Core 2026.6.0 之前版本中存在的一个路径遍历(Path Traversal)漏洞,允许未认证的攻击者在初始引导(onboarding)窗口期间,通过上传精心构造的备份归档文件,向主机文件系统的任意位置写入任意文件。当 Home Assistant 进程以 root 权限运行时,攻击者可获得完全的文件系统访问能力,进而可能实现远程代码执行、持久化后门植入等严重后果。
关键影响:
- 攻击复杂度: 低(无特殊条件)
- 所需权限: 无(未认证)
- 利用前提: 目标系统处于首次引导/未完成初始化阶段(默认存在)
- 后果: 任意文件写入 → 完整性和可用性受损(高完整性影响,低可用性影响)
受影响组件与版本
| 组件 | 版本范围 |
|---|---|
| Home Assistant Core | < 2026.6.0 |
备注: 漏洞仅在初始引导流程中可利用,但该窗口在默认安装时始终存在。所有低于 2026.6.0 的版本均受影响。
漏洞原理分析
技术成因
Home Assistant Core 在初始引导阶段允许用户上传备份归档文件(.tar 或类似格式)以恢复配置。系统从归档包中读取 backup.json 文件,提取 name 字段用于确定备份的存放路径。
正常情况下,路径拼接逻辑如下:
backup_dir = Path(config.get("backup_directory")) # 例如 /config/backups
target_path = backup_dir / name # pathlib.Path.__truediv__
然而,Python 的 pathlib.Path.__truediv__ 运算符(即 /)在处理路径时,如果右侧参数是一个绝对路径,则会完全丢弃左侧的前缀目录,直接使用右侧的绝对路径作为最终结果。例如:
Path("/config/backups") / "/tmp/evil.sh"
# 结果为 PosixPath('/tmp/evil.sh')
攻击者只需在 backup.json 的 name 字段中提供一个绝对路径(如 /tmp/evil.sh 或 /etc/cron.d/malicious),即可绕过预期的备份目录限制,将归档中的攻击载荷写入任意目标位置。
攻击向量
- 触发条件: 攻击者需要能够访问 Home Assistant 的 Web 服务(通常监听在 8123 端口)且实例处于初始引导状态(未完成初始化)。
- 操作步骤:
- 构造一个合法的
.tar归档文件,其中包含:- 一个篡改后的
backup.json文件,其name字段设置为绝对路径(如/data/supervisor/startup.sh)。 - 一个或任意恶意载荷文件,放在归档的预期位置上。
- 一个篡改后的
- 通过
/api/onboarding/或相关上传接口提交该归档。
- 构造一个合法的
- 结果: 服务器将载荷写入目标绝对路径,攻击者随后可触发该文件(如通过 SSH、计划任务、重启等)以获取代码执行权限。
现有信息不足以确定
backup.json中是否还需要其他字段(如slug、date等)来通过校验,但从漏洞描述看,仅name字段的控制即可完成路径劫持。
影响评估
利用难度分析(基于 CVSS 向量)
| 维度 | 值 | 含义 |
|---|---|---|
| AV:N | 网络 | 攻击者可远程利用 |
| AC:L | 低复杂度 | 无需特殊技巧或条件 |
| AT:P | 攻击目标存在 | 需要目标处于初始引导窗口(默认存在) |
| PR:N | 无需权限 | 完全未认证 |
| UI:N | 无需用户交互 | 自动化攻击可行 |
| VI:H | 完整性高 | 可写入任意内容,严重影响系统完整性 |
| VA:L | 可用性低 | 可能覆盖关键文件导致服务中断,但非核心 |
| SI:H | 安全完整性高 | 可破坏安全配置(如 SSH 密钥、sudoers 等) |
综合评估: 该漏洞具有高攻击价值,尤其在云服务或物联网场景中,未及时完成初始化的 Home Assistant 实例暴露在公网上时,极易被批量扫描利用。
潜在后果
- 任意文件写入 → 可覆盖 Supervisor 配置、SSH 授权密钥、系统服务单元等。
- 远程代码执行 → 写入 cron 任务、systemd 服务或 web 目录下的可执行脚本。
- 横向移动 → 若 Home Assistant 与其他内网服务共存,可作为跳板。
- 持久化后门 → 植入启动脚本或计划任务,使攻击长期控制设备(如智能家居中枢)。
修复建议
官方补丁
- 升级至 Home Assistant Core 2026.6.0 或更高版本。
该版本已修复路径拼接逻辑,强制对name字段进行规范化处理,拒绝绝对路径或包含..的路径。
临时缓解措施
如果无法立即升级,可采取以下措施:
禁止外部访问初始引导接口
- 使用防火墙或反向代理限制对
/api/onboarding/等路由的访问,仅在本地网络或 VPN 内完成初始化。 - 修改 Home Assistant 配置,绑定到
127.0.0.1而非0.0.0.0完成初始化后再改为公网可访问。
- 使用防火墙或反向代理限制对
降权运行
- 避免以 root 用户运行 Home Assistant 进程,降低写入敏感路径的风险。但注意 Home Assistant 的若干功能(如 Supervisor、USB 设备访问)可能需要较高权限,需评估可行性。
文件系统监控
- 部署文件完整性监控(FIM)工具或使用
auditd监控/config/backups/目录及常见敏感路径(如/etc/、/data/)的写入事件。
- 部署文件完整性监控(FIM)工具或使用
手动检查备份文件
- 在恢复备份前,手动解包归档并验证
backup.json中的name字段是否只包含合法的相对路径(如/^[a-zA-Z0-9_-]+$/)。
- 在恢复备份前,手动解包归档并验证
参考资料
- CVE 标识符: CVE-2026-64825
- CWE 分类: CWE-22: 路径遍历(Path Traversal)
- NVD 状态: Deferred(暂缓发布,但细节已公开)
- Python pathlib 文档: pathlib — Object-oriented filesystem paths
(注意:Path.__truediv__在处理绝对路径时的行为是语言规范特性,非 Home Assistant 独有缺陷,但应在上层进行校验。)
免责声明: 本文档基于公开的 NVD 数据和已知的技术原理进行合理分析,不包含任何未公开的 PoC 或利用细节。建议所有用户尽快升级至安全版本,并遵循最小权限原则部署服务。