当前位置: 首页 > news >正文

7-Zip 多个新漏洞可导致任意代码执行和系统受陷

聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士

7-Zip 26.00版本中存在一个严重的堆缓冲区溢出漏洞 (CVE-2026-48095,CVSS v3.1 评分8.1),可导致攻击者利用该工具NTFS归档处理器中的缺陷,通过虚表劫持实现任意代码执行。该漏洞被归类为 CWE-787(越界写入)和 CWE-190(整数溢出或环绕),影响所有7-Zip 26.00及之前版本。

该漏洞位于NtfsHandler.cpp中的CInStream::GetCuSize()函数内。该函数使用32位移位操作来计算NTFS压缩单元缓冲区大小:(UInt32)1 << (BlockSizeLog + CompressionUnit)。当精心构造的NTFS镜像将ClusterSizeLog设置为≥28(解析器明确接受该值),并且压缩数据属性中CompressionUnit == 4时,移位指数达到32,在C++中触发未定义行为。在x86硬件上,由于硬件对移位计数的屏蔽处理,该未定义行为导致_inBuf仅被分配1字节。

一个大小不足的1字节缓冲区会立即在 ReadStream_FALSE 调用中使用,该调用会将最多256 MB的攻击者控制的数据写入这个单字节的分配空间中。

由于流对象 CInStream 在堆上仅分配在 _inBuf 之后304字节,第一次64 KB的读取迭代就会覆盖该对象的虚表指针。

第二次迭代通过被破坏的虚表实施典型的虚表劫持,攻击者通过精心构造的NTFS集群内容完全控制被覆盖的指针。32位和64位版本均受影响。在拥有16 GB或以上RAM的64位系统上,_outBuf.Alloc(8 GB) 调用成功,执行过程直接进入溢出路径。在低内存系统上,分配失败会将影响限制为拒绝服务。

该漏洞一个特别危险的方面在于它与文件扩展名无关的攻击面。NTFS处理器使用基于签名的回退检测机制,通过字节偏移3处的“NTFS ”签名进行匹配。这意味着一个精心构造的NTFS镜像可以伪装成任何文件扩展名(例如 .7z、.zip、.rar,甚至没有扩展名),在扩展名匹配的处理器拒绝它之后,仍会触发存在漏洞的NTFS处理器。用户除了打开该构造文件之外无需任何交互。

所有7-Zip 26.00及之前版本均受影响,因为存在缺陷的 GetCuSize() 计算自NTFS压缩流支持首次引入以来就一直存在。

该漏洞由GitHub安全实验室的Jaroslav Lobačevski(@JarLob)发现并报告。已通过在Linux x64上使用Clang下的UBSan(UndefinedBehaviorSanitizer)得以确认,该工具在 NtfsHandler.cpp:687 处标记了根本原因的移位未定义行为,随后是一连串无效的虚表解引用,最终导致SIGSEGV。

强烈建议用户立即将7-Zip更新至已修复的版本 v26.01,并在应用修复之前避免打开任何扩展名的不可信归档文件或磁盘镜像。

开源卫士试用地址:https://oss.qianxin.com/#/login

代码卫士试用地址:https://sast.qianxin.com/#/login


推荐阅读

7-Zip 修复高危的 Windows MoTW 安全告警绕过漏洞

开源压缩软件7-Zip 被曝严重的远程代码执行漏洞

n8n严重漏洞可导致任意代码执行

ChatGPT Atlas 浏览器漏洞可用于植入恶意命令并执行任意代码

AI 代理发现 Chrome 中的严重 UAF 漏洞,可导致任意代码执行

原文链接

https://cybersecuritynews.com/7-zip-vulnerabilities-code-execution/

题图:Pixabay License

本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

觉得不错,就点个 “在看” 或 "赞” 吧~

http://www.cnnetsun.cn/news/2596543.html

相关文章:

  • Geoserver部署OSM离线地图:从数据导入到样式复现的完整实践
  • Sovit2D上手实测:不用写代码,如何把MQTT数据变成车间里的动态图表和动画?
  • Taotoken 用量看板与成本管理功能实测体验分享
  • ARMv8/v9架构下TRCVMIDCVR与TRFCR_ELx寄存器详解与应用
  • Tcl实战入门:从“Hello World”到数据结构解析
  • AntiDupl终极智能图片去重工具:免费开源解决方案完全指南
  • Boss-Key终极指南:Windows下一键隐藏窗口的完整隐私保护解决方案
  • RePKG:Wallpaper Engine资源逆向工程与提取工具完整指南
  • 5分钟快速上手BetterNCM安装器:为网易云音乐解锁无限插件功能
  • 缓存淘汰策略演进:从随机淘汰到注意力感知的实战对比
  • Django 从 0 到 1 打造完整电商平台:使用 Celery 异步发送邮件/短信
  • 从Bugku CTF Web题看布尔盲注的实战变种:绕过过滤与脚本自动化
  • 从数据集到开源代码:构建低光照增强技术栈的实践指南
  • 告别Thonny!用VSCode+RT-Thread插件玩转合宙ESP32-C3的MicroPython开发(附代码补全配置)
  • WeChatMsg终极教程:如何轻松备份微信聊天记录并生成年度报告
  • 提示工程:从复杂指令到简洁接口的设计思维转变
  • 如何将本地AI助手无缝集成到浏览器侧边栏:Page Assist完整使用指南
  • 《数据挖掘实战入门》实验:Weka Explorer界面核心功能全解析
  • 一次从波形异常到IPM保护的BLDC电机驱动实战排障
  • 判别式多视图非负矩阵分解:融合一致性、判别性与鲁棒性的表示学习
  • TwinCAT3项目迁移与版本兼容性避坑指南:从‘项目被卸载’到‘安全项目报错’的解决方案
  • Real-ESRGAN-GUI:让模糊图片秒变高清的免费AI图像增强工具
  • 从热点定位到瓶颈根因:Intel VTune Profiler实战性能调优指南
  • 智能驾驶的“定海神针”:一文读懂惯性导航(INS)的核心原理与实战指南
  • 在多模型项目中实现智能路由与故障切换的 Taotoken 实践
  • Python实战:基于巴法云TCP与MQTT协议实现设备双向通信
  • WRF嵌套网格实战:从GIS工具到namelist的避坑指南
  • 智能车竞赛技术报告 | 从零到一:OpenART视觉模块与RT1064的嵌入式AI实践
  • 别再只读数据了!手把手教你用STM32和MPU6050实现一个简易的电子水平仪(附源码)
  • 为什么无感定位+三维透明重构,是港口航运行业的刚性刚需