TALOS发现多个7-ZIP漏洞.PDFVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TALOS发现多个7-ZIP漏洞.PDF

2 0 1 6 年 5 月 1 1 日,星期三 TALOS 发现多个7-ZIP 漏洞 作者:Marcin Noga 和Jaeson Schultz。 7-Zip 是一款开源文件存档应用,其主要特性包括:可选AES-256 加密;支持大文件;能够 兼容“任何压缩、转换或加密方法”。最近,思科Talos 团队在7-Zip 中发现了多个可被利 用的漏洞。这些类型的漏洞格外值得关注,因为厂商可能不会意识到他们使用了存在漏洞的 代码库。举例来说,如果厂商将此应用集成到安全设备或防病毒产品,就会特别令人担忧。 目前,所有主要的平台都支持7-Zip ,该应用已成为当今最受欢迎的常用存档工具之一。如 果说出受影响的产品和设备的数量,可能会令人感到吃惊。 TALOS-CAN-0094 ,越界读取漏洞,[CVE-2016-2335] 7-Zip 处理通用光盘格式(UDF) 文件的方式存在越界读取漏洞。UDF 文件系统是为了取代 ISO-9660 文件格式而制定的,最终作为官方DVD 视频/音频文件系统得到采用。 7-Zip 处理UDF 文件主要是使用CInArchive::ReadFileItem 方法。由于卷可能具有不止一个 分区映射,所以卷对象会保存在一个对象容器中。在开始寻找某个项时, CInArchive::ReadFileItem 方法会尝试使用分区映射的对象容器以及长分配描述符的 “PartitionRef”字段,来引用正确的对象。由于此方法不会检查“PartitionRef”字段是否大 于可用的分区映射对象的数量,所以会导致读取越界,在一些情况下,还可能造成任意代码 执行漏洞。 存在漏洞的代码: CPP\7zip\Archive\Udf\UdfIn.cpp Line 898 FOR_VECTOR (fsIndex, vol.FileSets) Line 899 { Line 900 CFileSet fs = vol.FileSets[fsIndex]; Line 901 unsigned fileIndex = Files.Size(); Line 902 Files.AddNew(); Line 903 RINOK(ReadFileItem(volIndex, fsIndex, fs.RootDirICB, kNumRecursionLevelsMax)); Line 904 RINOK(FillRefs(fs, fileIndex, -1, kNumRecursionLevelsMax)); Line 905 } (...) Line 384 HRESULT CInArchive::ReadFileItem(int volIndex, int fsIndex, const CLongAllocDesc lad, int numRecurseAllowed) Line 385 { Line 386 if (Files.Size() % 100 == 0) Line 387 RINOK(_progress-SetCompleted(Files.Size(), _processedProgressBytes)); Line 388 if (numRecurseAllowed-- == 0) Line 389 return S_FALSE; Line 390 CFile file = Files.Back(); Line 391 const CLogVol vol = LogVols[volIndex]; Line 392 CPartition partition = Partitions[vol.PartitionMaps[lad.Location.PartitionRef].PartitionIndex]; 如果输入任何包含错误长分配描述符的代码,就会触发此漏洞。可以看出,在上面列出的代 码的第 898-905 行,程序会搜索特定卷中的元素,文件集以 RootDirICB 长分配描述符起始。 此记录可以被故意设置错误,以达到恶意目的。漏洞出现在第392 行,此处的PartitionRef 字段会超过PartitionMaps 容器中的元素的数量。 TALOS-CAN-0093 ,堆溢出漏洞,[CVE-2016-2334] 7-Zip 的 Archive::NHfs::CHandler::ExtractZlibFile 方法中,存在一个可被利用的堆溢出

文档评论(0)

duyingjie1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档