新7-Zip漏洞可让精心构造的XZ压缩包在解压时执行代码
导语:7-Zip曝出编号为CVE-2026-14266的高危堆缓冲区溢出漏洞,攻击者可通过精心构造的XZ压缩包在用户解压时执行任意代码。修复版本26.02已于6月25日发布,比7月15日的公开公告提前了20天。
在7-Zip中打开一个经过精心构造的XZ压缩包,可能让攻击者在这台机器上执行代码。该漏洞编号为CVE-2026-14266,是归档程序在处理XZ分块数据时发生的一个基于堆的缓冲区溢出。趋势科技的零日计划(ZDI)于7月15日披露了该漏洞的细节。修复版本已于6月25日随7-Zip 26.02发布。
根据安全公告,溢出允许攻击者"在当前进程的上下文中执行代码"。所执行的代码将以7-Zip自身持有的令牌(token)运行,不会获得额外的权限。在Windows上,即便使用管理员账户,正常启动的7-Zip也是以经过筛选的标准用户令牌运行,因此除非程序以提升权限的方式启动,否则攻击者只能继承那些受限的权限。该漏洞由Lunbun LLC的Landon Peng提交,他于6月5日向7-Zip报告了此问题。
ZDI对该漏洞给出的评分为7.0,属于高危(High)等级,而非一些报道中所描述的严重(Critical)级别。完整的CVSS 3.0向量为 AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H。其中AV:L表明这是一个本地(Local)攻击向量,而非网络可达或无交互的漏洞。
ZDI所称的"远程代码执行"指的是远程攻击者投递该文件,而受害者仍需自行打开它——无论文件是通过电子邮件、下载,还是通过网页交给7-Zip处理。高攻击复杂度(AC:H)使得可靠的利用变得更加困难。截至2026年7月20日,The Hacker News未发现该漏洞存在公开的概念验证(PoC),也没有可信的野外利用报告。
The Hacker News对比了不同版本中XZ解码器的源代码。修复集中在C/XzDec.c文件中的MixCoder_Code函数一处。当XZ流将其输出通过过滤器(filter)处理时,解码器在每次传递时拿到的都是完整的输出缓冲区长度,而不是先前写入后剩余的空间。这使得它可操作的空间超出了缓冲区的实际容量,也就是ZDI所描述的越界写入条件。

26.02版本对已写入的字节数进行了减法处理,并当累计字节数一旦超出缓冲区时立即退出(bails out)。相同的有缺陷的长度处理方式在7-Zip源代码中至少可以追溯到21.07版本(2021年),且自此未发生变化,不过ZDI和7-Zip都没有说明哪些版本实际上可被利用。
CVE-2026-14266是7-Zip归档处理器近期出现的一系列内存安全漏洞中的最新一例。4月27日发布的26.01版本修复了一批此类漏洞,其中包括评分更高的CVE-2026-48095——这是NTFS处理器中的一个堆写入溢出漏洞,GitHub Security Lab于5月22日公布了详细分析,并附带了可工作的概念验证代码。相比之下,XZ漏洞目前影响较小,而26.02版本整合了所有这些修复,因此一次更新即可覆盖全部漏洞。
因此,对所有会打开外部来源归档文件的机器,都应尽快升级到7-Zip 26.02或更高版本。该更新需要从官方网站手动安装,因此"一劳永逸"部署好的机器无法自动获取更新。任何捆绑使用含有漏洞的7-Zip XZ解码器的产品,都需要由其厂商自行发布修复。
补丁比安全公告提前20天发布,因此任何在6月底完成升级的用户早在漏洞细节公开之前就已经得到保护。这一次,及时更新能够让你提前一步解决问题,而不是在问题后面苦苦追赶。
来源信息
来源:The Hacker News
原文链接:https://thehackernews.com/2026/07/new-7-zip-vulnerability-could-let.html
作者:info@thehackernews.com (The Hacker News)

