安全研究机构Zero Day Initiative上周提交漏洞报告,指出压缩软件7-Zip存在一项基于堆(Heap)的缓冲区溢出漏洞,ZDI给该漏洞打了7.0分,黑客可利用此漏洞远程执行任意代码。
该漏洞发现者是Lunbun LLC的Landon Peng,于6月5日报给7-Zip团队。7-Zip团队反应迅速,6月25日就发布了修复版本26.02,比ZDI 7月15日公开advisory早了20天。截至目前,没有公开的PoC,也没有在野利用的报告。
问题的根源在于`MixCoder_Code`函数。当XZ流通过filter管道输出时,解码器每次收到的不是剩余空间,而是完整的输出缓冲区长度。这就导致解码器误以为自己还有足够的空间可写,实际上后面的字节已经不属于它了。
攻击者只需构造一个恶意的XZ压缩包,当用户解压该压缩包时,代码就能在当前进程的权限下执行。不过,好在这是个本地漏洞,不能通过网络直接攻击,需要用户交互。并且在Windows下,7-Zip默认受过滤令牌限制,即使是管理员账户也不会直接拿到高权限。
这并非7-Zip首次出现此类安全问题。今年4月的26.01版本就修复了一波内存安全漏洞,其中包括NTFS handler的堆写溢出,当时GitHub Security Lab还给出了可用的PoC。
再往前追溯,类似的“解压即执行”型漏洞在7-Zip的历史上反复出现,这反映出7-Zip在安全技术和架构方面可能存在长期的缺陷和管理疏漏。
此次7-Zip的漏洞事件为全行业敲响了警钟。压缩软件作为常用工具,其安全性至关重要。企业和用户应高度重视软件的安全更新,及时安装修复补丁,以避免遭受潜在的攻击。
软件开发者在开发过程中,要加强对代码的安全审查,特别是涉及内存管理和输入输出处理的部分,防止类似的缓冲区溢出漏洞出现。同时,建立完善的漏洞监测和响应机制,以便在发现漏洞后能够迅速采取措施进行修复。
编辑观点:7-Zip多次出现安全漏洞,凸显软件行业在安全方面仍有不足。开发者需强化安全意识,用户要及时更新软件,共同筑牢安全防线,避免因小漏洞引发大危机。