Apache Commons Compress内存耗尽漏洞 CVE-2021-35516

admin 2024-01-11 14:04:10 安全脉搏 来源:ZONE.CI 全球网 0 阅读模式

0x01 概述

Apache Commons Compress是一个开源的Java组件,用于处理各种压缩和归档格式,如ZIP、Tar、7z、gzip、bzip2等等。它提供了一套简单而灵活的API,使开发人员能够在Java应用程序中轻松地创建、解压缩和操作各种压缩格式的文件。

笔者通过对数百个真实项目引入组件的分析选出了Commons Compress组件的常见漏洞进行分析。本次分析的是CVE-2021-35516,Commons Compress对7z压缩文件解压时造成的内存耗尽漏洞。

0x02 组件使用场景

Apache Commons Compress组件广泛应用于Java开发中,可用于创建、解压多种压缩格式的文件,适用于文件压缩、归档管理、数据导出、备份、日志归档、安装程序创建、在线文件处理以及数据存档等场景,为开发人员提供了处理压缩和归档文件的便捷功能。

0x03 漏洞信息

3.1 漏洞简介

漏洞名称:内存耗尽漏洞

漏洞编号:CVE-2021-35516

漏洞类型:CWE-770 不受限制的分配资源/CWE-130 长度参数处理不当

CVSS评分:CVSS v3.1:7.5

漏洞危害等级:高危

3.2 漏洞概述

当读取一个特制的7Z归档文件时,Commons Compress库可能会被迫分配大量内存,最终导致即使对于非常小的输入也会出现内存不足错误。这可能被用于对使用Commons Compress库的7z包的服务发起拒绝服务攻击

3.3 漏洞利用条件

使用的Apache Commons Compress为漏洞影响版本。

3.4 漏洞影响版本

Apache Commons Compress 1.6 ~ 1.20

3.5 漏洞分析

1.样本分析

样本如下,可以发现Start Header全0。

2.补丁分析

其补丁对文件的内容进行了合法性检查,并且在修复文档中表示readFilesInfo使用了惰性延迟分配以避免出现内存不足的问题,但是仍不能具体找到漏洞的触发点。

1091683887702_.pic.jpg

weinxin
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论:0   参与:  0