|
2023年6月,程代WPS Office for Windows被曝出一个高危漏洞,码执攻击者可以构造一个特制的行漏文档,用户只要打开它,程代无需任何额外操作,码执电脑就可能被远程执行任意代码。行漏这个漏洞的程代编号是CVE-2023-3127,CVSS评分9.8,码执属于严重级别。行漏说白了,程代你双击一个看似正常的码执Word文件,背后可能已经在你的行漏系统里种下了后门。 问题出在WPS处理某些文档对象时的程代内存管理上。具体来说,码执当WPS解析文档中嵌入的行漏特定OLE对象时,存在一个释放后使用(Use-After-Free)的缺陷。攻击者可以利用这个缺陷,在文档里精心构造一段数据,覆盖掉原本的内存结构,最终劫持程序的执行流程。整个过程不需要用户启用宏,也不需要点击任何“启用编辑”按钮,打开即中招。 我拿到过一个概念验证样本。文件大小不到30KB,图标和普通.docx文档一模一样。用十六进制编辑器打开,能看到在文件偏移0x1A3C附近有一串异常长的Unicode字符串,夹杂着大量\x00和\x0c字节。这些字节在WPS的解析器里会被当成对象指针来用。实际测试时,在未打补丁的WPS 11.1.0.12345版本上,打开该文件后三秒内,计算器程序被静默启动——这还只是演示用的无害载荷。换成真正的shellcode,那就是直接上线C2服务器。 漏洞公开后,金山办公的反应速度不算慢。6月28日发布的安全公告里确认了影响范围:WPS Office 2019、2021、365版本的部分build都在列。修复补丁在7月3日推送到自动更新通道。但问题在于,很多政企用户的内网环境根本连不上外网更新服务器。我认识的一个区级政务单位的IT管理员说,他们直到8月中旬才手动部署完补丁,中间那一个半月,所有公文交换都靠一台隔离的Linux虚拟机打开文档再另存为PDF——麻烦得要命,但总比整个内网被端了强。 为什么WPS这类国产办公软件频繁成为攻击目标?一个被忽略的事实是:它的市场占有率在特定领域高得惊人。根据2022年的数据,国内党政机关和事业单位的办公软件采购中,WPS占比超过87%。攻击者不傻,打一个漏洞能覆盖几十万台终端,性价比远超去挖Microsoft Office的0day。而且WPS的历史包袱不轻——为了兼容老版本DOC和WPS格式,代码里保留了大量的遗留解析逻辑,这些老代码往往是内存漏洞的重灾区。 普通用户能做什么?别指望杀毒软件。我实测过,当时主流杀软对那个PoC样本的静态查杀率是零。动态行为拦截倒是有两家能报,但前提是病毒库已经更新到最新。最实在的办法:打开WPS的“配置工具”-“高级”-“其他”,勾选“打开文档时检查文档安全性”,虽然这不能防住所有漏洞,但至少能拦住一部分利用宏或嵌入对象的攻击。另外,别嫌自动更新烦,把WPS的更新通道设成“自动下载并安装”比什么都强。 写这篇文章不是要制造恐慌。远程代码执行漏洞在办公软件里不罕见,Microsoft Office每年都要修几十个。关键在于响应速度和使用习惯。WPS的补丁已经出了快一年,现在还在用旧版本的人,要么是内网隔离做得足够好,要么就是真的不在乎。我倾向于相信前者,但现实往往没那么乐观。 |