开源软件安全测试框架(模糊测试工具发现新漏洞)

黑盒模糊测试已经是一种成熟的安全和质量测试技术,使用防御系统发现零日漏洞和未知漏洞,避免演变成昂贵的补丁或召回事件。新思科技的Defensics 是一种全面的、多功能、自动化黑盒模糊测试器,受到开发人员的青睐。近日,新思科技的研究人员采用Defensics® 模糊测试工具发现了Jetty Web服务器拒绝服务漏洞。CVE-2020-27223披露在Eclipse Foundation中广泛使用的Jetty Web服务器拒绝服务漏洞。Eclipse Foundation是管理和运营Eclipse开源项目的基金会。

开源软件安全测试框架(模糊测试工具发现新漏洞)(1)

概述

新思科技网络安全研究中心(CyRC)研究人员发现了CVE-2020-27223漏洞,即Eclipse Jetty中的拒绝服务漏洞。Eclipse Jetty是一种广泛使用的开源Web服务器和Servlet容器。根据Eclipse Foundation网站,“ Jetty广泛应用于各种项目和产品,无论是开发阶段还是生产阶段。Jetty易于嵌入到设备、工具、框架、应用程序服务器和现代云服务中,长期以来一直受到开发人员的青睐。”

当Jetty处理包含带有大量质量因子参数(Accept请求头中的q值)的Accept请求头的请求时,CPU使用率较高,服务器可能会进入拒绝服务状态。新思科技研究人员认为,这是由于在org.eclipse.jetty.http.QuotedQualityCSV类的sort方法发现的漏洞导致:

开源软件安全测试框架(模糊测试工具发现新漏洞)(2)

Jetty中唯一可以触发此行为的功能是:

Ÿ 默认错误处理–带QuotedQualityCSV的Accept请求头被用来确定要发回客户端的内容类型(html、文本、json和xml等)

Ÿ StatisticsServlet –使用带有QuotedQualityCSV的Accept请求头被用来确定发回客户端的内容类型(xml、json、text、html等)

Ÿ HttpServletRequest.getLocale()–将 Accept-Language请求头与QuotedQualityCSV一起使用,以确定在此调用中返回哪种“首选”语言

Ÿ HttpservletRequest.getLocales()–与上面类似,但是根据Accept-Language请求头上的质量值返回一个有序的语言环境列表

Ÿ DefaultServlet –使用带有QuotedQualityCSV的 Accept-Encoding请求头以确定应将哪种预压缩内容以静态内容(与Web应用程序中的url模式不匹配的内容)发回

当服务器遇到排序项数量足够大且q参数中的值足够分散多样化的请求时,排序数组会导致CPU使用率激增。新思科技研究人员没有观察到由此而导致的内存泄漏或崩溃。但是,服务器可能需要几分钟来处理单个请求,该请求的大小在几十KB范围内。研究人员观察到请求大小与CPU使用时间之间呈指数关系。

受影响的软件

Ÿ Eclipse Jetty 9.4.6.v20170531 至9.4.36.v20210114版本

Ÿ Eclipse Jetty 10.0.0版本

Ÿ Eclipse Jetty 11.0.0版本

影响

CVSS 3.1 评分

Vector: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

评分5.3(中等)

漏洞可利用性指标:

攻击途径Attack Vector (AV): N = Network 网络

攻击复杂程度Attack Complexity (AC): L = Low低

所需权限Privileges Required (PR): N = None 无

用户交互User Interaction (UI): N = None 无

范围Scope (S): U = Unchanged 无变化

影响指标

机密性影响Confidentiality Impact (C): N = None 无

完整性影响Integrity Impact (I): N = None 无

可用性影响Availability Impact (A): L = Low低

修复强烈建议Jetty的软件供应商和用户升级到9.4.38.v20210224、10.0.1或11.0.1版本。漏洞发现者

位于芬兰奥卢的新思科技网络安全研究中心的研究人员Matti Varanka和Tero Rontti

凭借Defensics® 模糊测试工具发现了此漏洞。

新思科技感谢Webtide(Jetty的维护团队)及时地响应并修复此漏洞。

时间线

2021年1月5日:发现Jetty的漏洞

2021年2月10日:将漏洞信息反馈给Webtide(Jetty的维护团队)

2021年2月11日:Webtide确认Jetty存在漏洞,归为CVE-2020-27223

2021年2月22日:Webtide 发布修复

2021年2月26日:发布CVE-2020-27223修复建议

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。