文章总结: 本文分析WAVLINKWN535M1/M3路由器CVE-2026-89009未认证任意文件写入漏洞,CVSS9.1,sync_server在TCP13136端口以root运行且无认证,可覆盖启动脚本或命令注入提权。厂商已停产,多数设备无法修复,建议设置MeshMode为0、封锁端口并隔离设备。红队可低成本利用,防守方应定期扫描排查。 综合评分: 85 文章分类: 漏洞分析,红队,IoT安全
(9.1分) CVE-2026-89009:WAVLINK 路由器未认证任意文件写入,可远程提权 root
红队安全圈 红队安全圈
红队安全圈
2026年9月12日 20:00 重庆
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
WAVLINK 网状路由器的 sync_server 未认证即可任意写文件拿 root,有现成 PoC。这篇把成因、影响、PoC 用法和自查一次说清。
01 引言
WAVLINK WN535M1 / WN535M3 路由器爆出一个 CVSS 9.1 的未认证任意文件写入漏洞 CVE-2026-89009。默认开启的 mesh 组网模式让 sync_server 守护进程在 TCP 13136 端口监听,这个进程以 root 运行且不做任何认证,攻击者无需任何凭据就能往设备上任意写文件,覆盖启动脚本或凭据存储,实现持久化后完全控制设备。
麻烦在于:厂商已停止维护这两款型号,官方修复需高风险的两步 U-Boot 恢复流程,现场大量设备基本永远不会打补丁。对红队来说,这是典型的低成本高回报目标。
02 漏洞速览
漏洞编号CVE-2026-89009
影响产品WAVLINK WN535M1 / WN535M3(mesh 扩展器)
漏洞类型任意文件写入(CWE-36,认证缺失)
危害等级CVSS 9.1 Critical
是否在野官方确认并独立复现,无大规模在野报告
公开 PoC是(GitHub camdsmith 仓库)
攻击前提网络可达 TCP 13136,无需认证
03 漏洞成因
根因是 sync_server 对文件传输消息中的文件名完全信任。只要 mesh 模式开启(WN535M1 出厂默认开启),sync_server 就在 13136 端口监听文件传输请求,且不检查调用方身份。消息中有一个 100 字节的文件名字段,代码不做路径规范化(path canonicalization)就直接使用——攻击者填一个绝对路径,就能以 root 权限任意创建或覆盖任意文件。
这个洞还带个副产品:特定条件下文件名会拼进 shell,形成 OS 命令注入(CWE-78),CVSS 3.1 高达 9.8。也就是说攻击者不但能写文件,还有机会直接跑命令,任一条都足以拿下设备。
04 影响范围
受影响型号为 WN535M1 和 WN535M3,确认受影响固件 M35M1_V210223;修复固件为 M35M1_V250922。中间版本状态官方未逐版确认。
两个现实问题让影响面被放大:一是这两款已停产停维护,sync_server 不在当前产品线里;二是现场设备无法从 M35M1_V210223 直接升级,必须走带变砖风险的两步 U-Boot 恢复流程——绝大多数设备在野外永远不会被打补丁。此外,sync_server 二进制也出现在其他 Wavlink 设备的固件里,只是该端口默认不监听;一旦服务被启用,同样中招,影响型号清单目前没枚举全。
05 利用分析
PoC 已公开(仓库 camdsmith/wavlink-sync_server-rce),实现了完整线协议,提供三个原语。命令用法如下:
python3 sync_server_rce.py
拉起 telnetd,获得 root shell
python3 sync_server_rce.py
执行任意命令
python3 sync_server_rce.py
任意文件写入
已在物理 WN535M1 硬件(M35M1_V210223)上实测拿到 root shell,厂商也独立复现。测试时注意收尾 killall telnetd,别在仍在用的设备上留后门。合规红线:只对你有权测试的设备操作。
06 检测与排查
先看网络层有没有入口暴露,扫描本网段找出 13136 端口的监听者:
nmap -p 13136 -sV <网段>
命中就说明某台 WAVLINK 设备在跑 sync_server。再进设备管理界面确认 mesh 模式是否开启——MeshMode 为 1 即视为暴露。这类设备通常是网桥和 mesh 节点,常在局域网里对任何设备可达,包括访客网络和被攻破的 IoT 设备,别因为它躲在路由器后面就默认安全。
07 修复建议
官方没有温和的修复路径,按优先级处理。
临时缓解(立即可做):设置 MeshMode 为 0,停止 sync_server 绑定 13136;在网络边界封锁入站 TCP 13136。这会牺牲 mesh 组网功能,但先保平安。
正式修复:愿意承担风险可尝试升级到 M35M1_V250922,务必先读厂商的 U-Boot 恢复说明。鉴于停产停维护的现实,多数设备建议以缓解措施为主、把设备当不受信任节点隔离。
08 红队视角
这个洞对红队有三个实用价值。一是门槛极低:预认证、无用户交互、网络可达就打,设备内外网横向都够用。二是两条路都能通:写文件可覆盖启动脚本/凭据存储做持久化,命令注入能直接提权,属于典型的进入即拿下。三是目标存量可观——停产型号加大量野外部署,资产测绘扫 13136 一票一个准。
防守方要认清:这类无认证的物联网守护进程是扫描器最爱的猎物。定期扫内外网 13136、对 mesh 设备收紧网络分段、停产设备一律按不信任节点对待,别指望厂商热修。今天扫一遍你的网段,比什么都快。
09 POC 链接
https://github.com/camdsmith/
wavlink-sync_server-rce
说明:作者 Cam Smith 发布,含 README 与 sync_server_rce.py,README 附完整复现方法。
如果文章对您有收获,欢迎关注、点赞、推荐、转发。
— END —
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:红队安全圈 红队安全圈 红队安全圈《(9.1分) CVE-2026-89009:WAVLINK 路由器未认证任意文件写入,可远程提权 root》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论