1. 通告信息
近日,监测到一则 Spring Framework 组件存在远程代码执行漏洞的信息,漏洞威胁等级:严重。
该漏洞是由于 Spring Framework 未对传输的数据进行有效的验证,攻击者可利用该漏洞在未授权的情况下,构造恶意数据进行远程代码执行攻击,最终获取服务器权限。
对此,安识科技建议广大用户及时升级到安全版本,并做好资产自查以及预防工作,以免遭受黑客攻击。
2. 漏洞概述
CVE: CVE-2022-22965
简述:Spring 是一个支持快速开发 Java EE 应用程序的框架。它提供了一系列底层容器和基础设施,并可以和大量常用的开源框架无缝集成,可以说是开发 Java EE 应用程序的必备。该漏洞是由于 Spring Framework 未对传输的数据进行有效的验证,攻击者可利用该漏洞在未授权的情况下,构造恶意数据进行远程代码执行攻击,最终获取服务器权限。
3. 漏洞危害
攻击者可利用该漏洞在未授权的情况下,构造恶意数据进行远程代码执行攻击,最终获取服务器权限。
4. 影响版本
目前受影响的 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日)
5. 解决方案
一、官方修复建议:
当前 Spring Framework 官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。
注:Spring Framework 5.3.18和Spring Framework 5.2.20是 Spring 官方提供的两个安全版本(截止至3月31日)
二、临时修复建议:
该临时修复建议存在一定风险,建议用户可根据业务系统特性审慎选择采用临时修复方案:
需同时按以下两个步骤进行漏洞的临时修复:
1.在应用中全局搜索@InitBinder注解,看看方法体内是否调用dataBinder.setDisallowedFields 方法,如果发现此代码片段的引入,则在原来的黑名单中,添加{"class.*","Class. *","*. class.*", "*.Class.*"}。(注:如果此代码片段使用较多,需要每个地方都追加)
2. 在应用系统的项目包下新建以下全局类,并保证这个类被 Spring 加载到(推荐在Controller 所在的包中添加).完成类添加后,需对项目进行重新编译打包和功能验证测试。并重新发布项目。