三年三次满分洞没人修:TOTOLINK 路由固件上传打穿 root(CVE-2026-105484·附PoC)
赤霄攻防实验室
赤霄攻防实验室
赤霄攻防实验室
2026年10月9日 17:10
河北
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
昨晚,一个新 CVE 悄悄出现在 NVD:CVE-2026-105484。它没有 KEV 在野标记,没有勒索团伙背书,但评分栏写着两个 10.0——CVSS v3.1 和 v4.0 双满分。受害对象是 TOTOLINK X6000R,一台在东南亚、中东、东欧电商平台上常年有售的 Wi-Fi 6 家用路由器。
满分向量 AV:N/AC:L/PR:N/UI:N 意味着:网络可达、攻击成本低、零认证、零交互。翻译成人话——谁能 ping 到这台路由器的管理页面,谁就能在它上面以 root 身份执行任意命令。
▲ TL;DR 四行速览:是什么 / 影响面 / 修复 / 看点
一、漏洞档案:双满分是怎么来的
先看官方定性。VulDB(本 CVE 的 CNA)将其归为 CWE-78 操作系统命令注入,影响组件是固件升级处理器 UploadFirmwareFile,注入点是 file\_name 参数,漏洞函数是 firmware\_check。NVD 目前状态为 Received,尚未完成分析复核,但 CNA 评分已经给出双满分。
▲ CVE-2026-105484 漏洞概要信息卡
▲ NVD 官方详情页:双满分 10.0,状态 Received
值得注意的是满分向量里的 S:C(作用域改变)。SC:H/SI:H/SA:H 说明 VulDB 认为攻陷这台路由不只是拿到一台设备:路由器是全屋流量的必经之路,拿到 root 后可以改 DNS、劫持流量、横向进入内网——影响的.evaluated 是整个家庭网络。对一台两三百块的家用路由来说,这是理论上的最坏情况。
二、根因拆解:一行 shell 拼接,三个函数接力
TOTOLINK 的 Web 管理界面由一个叫 shttp 的轻量守护进程提供,所有配置操作都走同一个 CGI 入口 /cgi-bin/cstecgi.cgi,用 POST 过去的 JSON 里的 topicurl 字段做分发——相当于「一个 URL 路由所有功能」。固件升级功能对应的处理器就是 UploadFirmwareFile。
根据公开逆向(安全研究人员对同系列固件的反汇编分析),整条漏洞链只有三步接力:shttp 进程的处理器函数从请求 JSON 中提取固件文件名 file\_name;随后把它传给公共动态库 libcscommon.so 里的 firmware\_check 函数做「固件合法性检查」;而 firmware\_check 的实现,是把这个外部输入原样拼进一个等价于系统 shell 的命令执行通道,交给系统直接运行。
▲ 攻击链六步:从一条 POST 到 root,全程无认证
问题就出在最后一步:这个通道接受完整 shell 语法。文件名里若包含反引号,反引号包裹的内容会被 shell 当作独立命令优先执行——这正是几十年前就写进教科书的经典注入手法。而从 HTTP 请求到 shell,中间没有任何字符过滤、白名单校验或转义。Web 进程以 root 运行,注入的命令自然也是 root 权限。
更讽刺的是接口的响应设计:无论注入是否成功,设备都返回正常的 JSON 错误字段(upgradeERR)。没有日志、没有告警、没有异常返回——被打了都不知道。
三、最刺眼的部分:同一行代码,三年被打穿三次
把时间轴拉长看,这才是本次 CVE 真正值得写的地方。X6000R 的「配置接口直通系统命令」链路,已经是第三次出现在 CVE 数据库里了。
▲ 三年三洞:同一链路的 CVE 编年史
2025 年,CVE-2025-52053:同样打 UploadFirmwareFile 的 file\_name,同样落在 firmware\_check,固件版本是 2024 年 12 月构建的 V9.4.0cu.1360。同年 CVE-2025-52284:换了入口 setNtpCfg(时间设置),换了参数 tz(时区),根因依然是配置值直通系统命令执行。两次都有完整公开逆向和利用证明。
然后是 2026 年的 CVE-2026-105484:入口回到 UploadFirmwareFile,参数回到 file\_name——而受影响固件版本是 V9.4.0cu.652\_B20230116,一个比 2024 年那两份固件更老的 2023 年 1 月构建。也就是说,这次报的是老固件上的老问题,而 52053 报的是新固件上的同一个老问题。三年过去,这行代码从未真正修过。
厂商的补丁姿势也印证了「补了个寂寞」:每次只是把出事的那个参数加几个黑名单字符,命令直拼的架构原封不动,于是下一个参数、下一个入口、下一份固件继续漏。这是典型的「哪里报修修哪里」,而非修复产生漏洞的土壤。
四、影响面:在售设备 + 官网仍在分发漏洞固件
X6000R 是 TOTOLINK 的主力 Wi-Fi 6 机型之一(MediaTek MT7981B 双核 1.3GHz、256MB 内存、16MB SPI NOR 闪存),在 Shopee、Lazada 等东南亚电商平台长期有售,OpenWrt 硬件库里标注 2025 年仍在流通。国内用户接触较少,但在外贸、跨境电商、海外华人圈子里并不罕见。
实测更让人无语:截稿时,TOTOLINK 马来西亚官网 X6000R 产品页提供的固件下载,正是受影响的 V9.4.0cu.652\_B20230116——官网当前分发的就是漏洞版本本身。而全球官网改版后,固件下载区已无 X6000R 条目,历史下载链接全部失效。也就是说:既没有补丁,也没有补丁的载体,新买设备刷到的还是 2023 年的漏洞固件。
攻击面方面:默认配置下管理界面只开在 LAN 侧,公网直接打不到;但一旦用户开了远程管理(不少用户为了在外管理家里路由会开)、或攻击者已进入内网(钓鱼、Wi-Fi 靠近、供应链),这条链就是零成本直达 root。家用场景没有 EDR、没有日志审计,实际风险远高于企业网的同等漏洞。
五、验证与防御:完整 PoC 已开源
我们按「指纹识别 → 端点探测 → 无害时延验证 → 三态结论」的流程写了一个非破坏性验证脚本,并在按公开逆向复现的模拟环境上实测:注入 4 秒时延命令后,两轮采样响应时间均为 4.02 秒,基线 0.00 秒——命令确定被执行;开启哨兵写入选项后,写入-读回-自动清理全链路验证通过,脚本输出 VULNERABLE / PATCHED / UNKNOWN 三态结论。完整 PoC 已开源到 GitHub(见文末参考)。
给持有这台设备的读者三条可执行建议:其一,管理界面永远不要暴露到 WAN,远程管理功能用完即关;其二,登录 TOTOLINK 后台确认固件版本,若是 9.4.0cu.652 且官网无补丁可升,认真考虑刷入 OpenWrt(24.10.5 起官方支持 X6000R,社区维护比原厂勤快得多);其三,改掉默认口令——命令注入不需要口令,但同设备历史上还有一堆需要弱口令的洞,别叠 buff。
六、赤霄点评
这个 CVE 单看技术含量并不高——未过滤输入拼 shell,是入门渗透测试课程第一周的教材内容。它入选今天深度分析的原因是标本价值:一个满分洞,出现在一台在售设备上,官方渠道仍在分发漏洞固件,且同样的根因三年内被打了三次还没修。这不是某个研究员的胜利,是低预算厂商安全工程的真实水位。
对防御者的启示也很朴素:买路由器看两件事——厂商有没有 CVE 响应记录、社区固件(OpenWrt)是否支持。前者决定出了洞有没有人修,后者决定厂商不修时你有没有退路。X6000R 在第二项上是满分,这大概是它唯一的安慰。
参考
· NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-105484
· VulDB VDB-413619: https://vuldb.com/vuln/413619
· 同族逆向(CVE-2025-52053): https://github.com/w0rkd4tt/Totolink
· OpenWrt X6000R 支持页: https://openwrt.org/toh/totolink/x6000r
· PoC(本实验室): https://github.com/Rubby2001/CVE-POCS/blob/main/CVE-2026-105484/poc.py
— END —
免责声明:本文仅用于安全研究与防御参考,漏洞细节来自公开渠道。请勿对未授权设备进行测试,由此产生的一切后果与作者无关。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论