CVE-2026-48095
GHSL-2026-140_7-Zip:7-Zip 存在通过 NTFS 压缩流缓冲区分配不足导致的堆缓冲区溢出漏洞
- 已发布
- 2026年6月5日
- 已更新
- 2026年6月8日
- 分配 CNA
- GitHub_M
- 观察到的证据
- 2026年8月17日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H低 · 未来 30 天
- 百分位
- 64.1%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
7-Zip 是一款具有高压缩率的文件归档工具。26.00 及更早版本存在一个堆缓冲区溢出漏洞,该漏洞由 NTFS 压缩流缓冲区分配不足(GetCuSize 移位未定义行为)引起,可能允许攻击者造成任意代码执行或应用程序崩溃。NTFS 处理器中的 CInStream::GetCuSize() 将压缩单元缓冲区大小计算为 (UInt32)1 << (BlockSizeLog + CompressionUnit),而精心构造的镜像若满足 ClusterSizeLog >= 28 且 CompressionUnit == 4,则会将指数推至 32,这属于未定义行为,在 x86/x64 上会崩溃,导致 _inBuf 仅被分配为 1 字节。随后 ReadStream_FALSE 会以 64 KB 的迭代次数将多达 256 MB 的攻击者控制数据写入该 1 字节缓冲区,并且由于 CInStream 对象仅位于 _inBuf 之后 304 字节处,其 vtable 指针会被覆盖,下一次分派调用即可实现 vtable 劫持。在 32 位构建中,溢出可无条件触发;在 64 位中,则需要并行的 8 GB _outBuf 分配成功,否则将失败并关闭为拒绝服务。NTFS 处理器在标准 7z.dll 中默认启用,并且通过基于签名的回退匹配(在偏移 3 处匹配 "NTFS "),在解压或测试期间无论文件扩展名如何,都会打开精心构造的镜像。26.01 版本修复了该问题。
来源
1CVE-2026-48095
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。