
一款被 “几乎所有计算机硬件和操作系统” 采用的无损数据压缩引擎 zlib,被曝出一个高危漏洞。该漏洞编号为CVE-2026-22184,属于全球性缓冲区溢出漏洞,其通用漏洞评分系统(CVSS)分值高达9.3,对所有依赖该函数库中
untgz工具的系统构成重大威胁。该漏洞的根源在于
untgz工具代码中存在一处基础性内存管理错误。攻击者只需传入一个超长的压缩包文件名,就能触发连锁式内存损坏,轻则造成系统崩溃,在最坏情况下,甚至可以实现远程代码执行。漏洞的核心问题出在
TGZfname()函数中。据漏洞披露信息显示,该函数负责处理通过命令行传入的压缩包文件名,但它存在一个致命缺陷:直接通过无边界检查的strcpy()函数,将攻击者可控的压缩包文件名从argv[]数组复制到一个固定大小为 1024 字节的静态全局缓冲区中。这段代码在执行复制操作前,并未对输入数据的长度进行校验。这意味着,一旦攻击者传入的压缩包文件名长度超过 1024 字节,数据就会溢出缓冲区边界。
报告中解释道:“当传入的压缩包文件名长度超过 1024 字节时,会引发针对全局缓冲区末端的越界写入操作,进而造成内存损坏。”
该漏洞的极高危险性还体现在其攻击门槛极低这一特点上。存在缺陷的代码位于程序的入口环节,“在执行任何压缩包解析或校验操作之前,就会触发该漏洞代码,攻击者仅通过命令行输入就能轻易利用此漏洞”。
攻击者无需构造复杂的恶意文件结构,只需要在调用该工具时,传入一个 “长度足够的文件名参数” 即可发起攻击。
由于此次溢出针对的是全局静态数组,而非栈上分配的内存空间,因此造成的内存损坏具有极强的隐蔽性。报告指出,“内存损坏的影响可能超出该函数的作用域,对后续程序的运行逻辑产生干扰”,最终导致程序出现未定义行为或直接崩溃。
该漏洞造成的后果根据目标环境的编译器、系统架构以及内存布局的不同而有所差异,影响范围涵盖拒绝服务攻击(DoS) 到潜在代码执行等多个层面。
此漏洞影响范围覆盖所有版本号≤1.3.1.2 的 zlib。相关机构强烈建议,所有使用
untgz工具的系统管理员和开发人员,立即评估自身系统的漏洞暴露情况,并尽快部署已修复漏洞的版本,以消除这一高危风险。






发表评论
您还未登录,请先登录。
登录