🔴 严重 | CVE-2026-62948 — OpenWrt is a Linux operating system targeting embe...
🔴 【深度分析】严重安全漏洞:CVE-2026-62948
CVSS 评分: 严重(9.6)🔴 状态: Analyzed 发布时间: 2026-07-15
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-62948 |
| CVSS 评分 | 9.6 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H |
| CWE 分类 | CWE-79,CWE-117,CWE-150 |
| 发布时间 | 2026-07-15 |
| 最后更新 | 2026-07-21 |
| 状态 | Analyzed |
| 数据来源 | security-advisories@github.com |
好的,作为一名资深网络安全分析师,我将基于您提供的 NVD 数据,为您生成一篇关于 CVE-2026-62948 的深度分析文章。
⚠️ 高危漏洞预警:CVE-2026-62948 - OpenWrt odhcpd 命令注入与存储型XSS (CVSS 9.6)
CVSS 评分: 9.6 (Critical)
危害等级: 严重
攻击向量: 网络 (AV:N)
攻击复杂度: 低 (AC:L)
所需权限: 无 (PR:N)
用户交互: 需要 (UI:R)
影响范围: 已变更 (S:C)
机密性/完整性/可用性: 高 (H/H/H)
漏洞概述
CVE-2026-62948 是 OpenWrt 系统核心组件 odhcpd 中的一个高危漏洞。该漏洞允许未经身份验证的远程攻击者,通过精心构造一个 DHCPv6 请求(包含恶意 FQDN 选项),向 OpenWrt 设备注入恶意的 HTML 代码。当设备管理员访问 LuCI Web 管理界面中的“活跃 DHCPv6 租约”页面时,该恶意代码会作为活动 HTML 执行,导致存储型跨站脚本攻击 (Stored XSS)。由于攻击者可以窃取管理员会话 Cookie、执行任意操作(如修改设备配置、安装恶意软件)甚至完全控制设备,其危害性极高,CVSS 评分高达 9.6(严重)。
受影响组件与版本
- 受影响组件: OpenWrt 系统中的
odhcpd服务 (DHCP/DHCPv6/RA 服务器) - 影响版本: 低于 25.12.5 的所有 OpenWrt 版本
- 修复版本: 25.12.5 及更高版本
漏洞原理分析
该漏洞是一个多阶段、组合触发的漏洞,涉及三个 CWE 分类:CWE-79(跨站脚本XSS)、CWE-117(日志输出注入)和 CWE-150(资源标识符转义不当)。其利用过程可分为以下两个关键阶段:
第一阶段:恶意数据注入(日志注入 / 资源标识符转义不当)
漏洞的根源在于 odhcpd 守护进程中的 src/statefiles.c 文件。
- FQDN 未转义: 当
odhcpd处理来自 DHCPv6 客户端的 FQDN 选项(Option 39)时,会将该主机名未经任何转义处理直接写入租约文件/tmp/odhcpd.leases。statefiles_write_state6()和statefiles_write_state4()函数是写入点。 - 换行符注入 (CWE-150/CWE-117): 由于没有对输入的主机名字符串进行转义,攻击者可以在 FQDN 字段中注入换行符 (
\n) 和其他特殊字符。例如,一个精心构造的主机名a\n<恶意数据>会破坏租约文件的格式,新插入一行伪造的租约条目。
攻击向量示例: 攻击者通过其客户端发送一个 DHCPv6 请求,其中 FQDN 选项内容为:
attacker_host\n<PAYLOAD>
当 odhcpd 处理并写入文件时,实际的 /tmp/odhcpd.leases 文件中将会新增两行:
- 正常的一行(包含
attacker_host) - 完全由攻击者控制的伪造行
<PAYLOAD>,因为换行符将其分隔成了新的一行。
第二阶段:恶意数据渲染与执行(存储型跨站脚本)
- 数据读取未过滤: LuCI(OpenWrt 的 Web 管理界面)通过
rpcd-mod-luci模块的getDHCPLeases方法,读取/tmp/odhcpd.leases文件内容,并将其传递给前端 JavaScript 代码。 - HTML 注入 (CWE-79): 前端文件
htdocs/luci-static/resources/view/status/include/40_dhcp.js和htdocs/luci-static/resources/luci.js中的dom.append函数,负责将获取到的租约数据(包括主机名)动态地追加到页面 DOM 中。 - XSS 触发: 该过程并未对租约数据中的 HTML 标签和 JavaScript 代码进行任何转义或清理。因此,当管理员访问“状态 -> 概况 -> 活跃 DHCPv6 租约”页面时,攻击者在第一阶段注入的恶意
PAYLOAD(例如<img src=x onerror=alert(1)>或更复杂的 JavaScript 脚本)会作为合法的 HTML 代码被浏览器解析并执行。
影响评估
- 攻击复杂度:低 (AC:L): 攻击者只需要能够发送恶意的 DHCPv6 请求。许多网络环境(尤其是公共 Wi-Fi、企业访客网络)允许未经身份验证的设备发送 DHCP 请求。
- 所需权限:无 (PR:N): 攻击者在发起 DHCP 请求阶段不需要任何认证信息,可以利用任何连接到网络的设备发起攻击。
- 用户交互:需要 (UI:R): 此处的“用户交互”并非指攻击者,而是指受害者——OpenWrt 设备的管理员。只要管理员有意或无意地访问了“活跃 DHCPv6 租约”页面,攻击就自动触发。由于这是一个常见的维护页面,交互门槛很低。
- 潜在后果:
- 设备完全沦陷: 攻击脚本可以执行任意命令,完全控制路由/设备,包括修改路由配置、转发流量、进行 DNS 劫持、加入僵尸网络(如 Mirai)等。
- 数据窃取: 窃取管理员会话 Cookie,从而可以远程执行所有管理操作。
- 横向移动: 被控制的 OpenWrt 设备可以作为跳板,对内部网络中的其他设备发起攻击。
- 持久化后门: 攻击者可写入固件或启动脚本,实现长期驻留。
- 总体评分 9.6 的合理性: 极低的利用门槛(网络可达、无需权限)、极低触发成本(管理员正常操作)、极高的影响(设备完全控制),三者结合使得此漏洞达到了“严重”级别。
修复建议
紧急措施(立刻执行)
- 更新 OpenWrt 版本: 立即将 OpenWrt 系统升级至 25.12.5 或更高版本。这是官方提供的修复版本。
opkg update opkg upgrade odhcpd luci-mod-rpc
临时缓解措施(若无法立即升级)
- 限制 DHCPv6 客户范围: 在网络的接入层(如交换机、AP)启用 802.1X 或 MAC 地址过滤,仅允许受信任的设备发送 DHCP 请求。
- 禁用 DHCPv6 服务(不推荐): 如果业务不必要,可考虑停用 DHCPv6 服务,但这可能会严重影响网络功能。
- 避免访问易受攻击的管理页面: 在修复前,尽量避免访问
状态 -> 概况 -> 活跃 DHCPv6 租约页面。 - 设置 Web 防火墙规则: 配置反向代理或者 WAF 规则,尝试过滤掉包含特定模式(如
onerror=、<script、<img等)的查询参数,但这种方法风险较高,容易产生误杀或绕过。
官方补丁分析
官方补丁 25.12.5 的核心修复策略是针对 第一阶段:
- 在
src/statefiles.c的写入函数中,对 FQDN 等用户可控的字符串进行严格转义,特别是对换行符、回车符以及 HTML 特殊字符(如<、>、&、"、')进行编码或过滤,从源头杜绝恶意数据的注入。 - 同时,在前端 JavaScript 代码中很可能也增加了对租约数据的 HTML 编码 或使用安全的 DOM 操作方式(如
textContent替代innerHTML或类似逻辑),提供纵深防御。
参考资料
- NVD 官方页面: https://nvd.nist.gov/vuln/detail/CVE-2026-62948
- CWE-79: 跨站脚本 (XSS) - https://cwe.mitre.org/data/definitions/79.html
- CWE-117: 日志输出注入 - https://cwe.mitre.org/data/definitions/117.html
- CWE-150: 资源标识符转义不当 - https://cwe.mitre.org/data/definitions/150.html
- OpenWrt 官方安全公告: (建议关注 OpenWrt 邮件列表或 GitHub Release 页面获取最新公告)
- GitHub Commit (修复代码):
25.12.5版本的odhcpd和luci-mod-rpc提交记录。