【漏洞预警】Spring Framework远程代码执行漏洞

1


漏洞简介


近日,某团队监测到一则 Spring Framework 组件存在远程代码执行漏洞的信息,漏洞威胁等级:严重。

该漏洞是由于 Spring Framework 未对传输的数据进行有效的验证,攻击者可利用该漏洞在未授权的情况下,构造恶意数据进行远程代码执行攻击,最终获取服务器权限。


只要同时满足以下条件的应用系统均遭受影响:

1、使用了jdk 9及以上

2、使用tomcat部署了spring项目

3、Spring项目中web接口参数使用了复杂对象


2


漏洞概述



CVE: CVE-2022-22965

简述:Spring 是一个支持快速开发 Java EE 应用程序的框架。它提供了一系列底层容器和基础设施,并可以和大量常用的开源框架无缝集成,可以说是开发 Java EE 应用程序的必备。该漏洞是由于 Spring Framework 未对传输的数据进行有效的验证,攻击者可利用该漏洞在未授权的情况下,构造恶意数据进行远程代码执行攻击,最终获取服务器权限。

关于 Spring RCE 0day 判断是否存在利用条件:1、JDK 9 及以上2、Spring 框架以及衍生的框架spring-beans-*.jar 文件 或者 存在CachedIntrospectionResults.class


3


影响版本



目前受影响的 Spring Framework 的版本:

Spring Framework 5.3.X < 5.3.18

Spring Framework 5.2.X < 5.2.20

注:其他 Spring Framework 旧版本同样会受到影响。

Spring Framework 官方提供

Spring Framework 5.3.18 和 Spring Framework 5.2.20两个安全版本(截止至3月31日)

 

4


解决方案



一、官方修复建议:

当前 Spring Framework 官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。链接如下:

https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcementhttps://github.com/spring-projects/spring-framework/tags注:Spring Framework 5.3.18和Spring Framework 5.2.20是 Spring 官方提供的两个安全版本(截止至331日)

二、临时修复建议:

该临时修复建议存在一定风险,建议用户可根据业务系统特性审慎选择采用临时修复方案:

需同时按以下两个步骤进行漏洞的临时修复:

1.在应用中全局搜索@InitBinder注解,看看方法体内是否调用dataBinder.setDisallowedFields 方法,如果发现此代码片段的引入,则在原来的黑名单中,添加{"class.*","Class. *","*. class.*", "*.Class.*"}。(注:如果此代码片段使用较多,需要每个地方都追加)

2. 在应用系统的项目包下新建以下全局类,并保证这个类被 Spring 加载到(推荐在Controller 所在的包中添加).完成类添加后,需对项目进行重新编译打包和功能验证测试。并重新发布项目。

• 往期精选

GoldenEye 靶场渗透测试

CVE-2020-1472漏洞复现

记一次艰难的SQL注入(过安全狗)

干货|sql注入绕WAF的N种姿势

下方点击关注发现更多精彩!

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐