漏洞描述
近日,亚信安全CERT监控到Spring Framework存在远程代码执行漏洞(CVE-2022-22965),在JDK9及以上版本前提下,结合Tomcat进行Spring项目部署的实际环境中,远程攻击者可利用该漏洞生成恶意文件导致远程代码执行。
目前已经发布修复版本:Spring Framework 5.3.18 和 5.2.20 ,鉴于该漏洞受影响面广大,漏洞细节以及对应POC、EXP已公开,亚信安全CERT建议使用Spring Framework的用户尽快采取相关措施。
Spring是目前世界上最受欢迎的Java EE轻量级开源框架,是Java世界最为成功的框架之一。专注于简化Java企业级应用的开发难度、缩短开发周期。
漏洞编号
CVE-2022-22965
漏洞等级
高危
漏洞状态
漏洞细节 |
漏洞PoC |
漏洞EXP |
在野利用 |
已公开 |
已发现 |
已发现 |
已发现 |
受影响的版本
满足下列4个组合条件:
-
JDK >= 9
-
使用Tomcat部署了Spring项目或Spring衍生项目
使用@RequestMapping注释和使用POJO(Plain Old Java Object)参数的组件
-
Spring Framework版本小于5.3.18(5.3x系列)或5.2.20(5.2x系列)
亚信安全产品防护
亚信安全信桅深度威胁发现设备【TDA】,信舷防毒墙【AISEDGE】,信舱云主机安全【DeepSecurity】已经支持对该漏洞的检测,请用户及时更新规则,以形成安全产品检测和防护能力。
产品 |
版本号 |
规则包 版本 |
规则 |
TDA |
6.0及以上版本 |
1.0.0.105 |
103044098 103044099 |
AISEDGE |
7.0.3.1 |
1.0.0.031 |
103044098 103044099 |
DS |
所有版本 |
- |
1011372-Spring Framework "Spring4Shell" Remote Code Execution Vulnerability (CVE-2022-22965) |
漏洞复现
亚信安全CERT安全专家已第一时间构造PoC,并复现成功。
修复建议
※ 目前,Spring官方已发布漏洞修复版本,请用户及时更新至最新版本。
-
Spring Framework 5.3.x版本下载地址:https://github.com/spring-projects/spring-framework/releases/tag/v5.3.18
-
Spring Framework 5.2.x下载地址:https://github.com/spring-projects/spring-framework/releases/tag/v5.2.20.RELEASE
※ 在WAF等网络防护设备上,根据实际部署业务的流量情况,实现对对"class.*","Class.*","*.class.*","*.Class.*"等字符串的规则过滤,并在部署规则后,对业务允许情况进行测试,避免产生额外影响。
临时缓解措施
※ 全局搜索@InitBinder注解,判断方法体内是否有dataBinder.setDisallowedFields方法,如果有使用则在原来的黑名单中添加:{"class.*","Class.*","*.class.*","*.Class.*"}
※ 在应用系统的项目包下新建以下全局类,并保证这个类被Spring 加载到(推荐在Controller 所在的包中添加)。完成类添加后,需对项目进行重新编译打包和功能验证测试。并重新发布项目。
Java
import org.springframework.core.annotation.Order;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.InitBinder;
@ControllerAdvice
@Order(10000)
public class GlobalControllerAdvice{
@InitBinder
public void setAllowedFields(webdataBinder dataBinder){
String[]abd=new string[]{"class.*","Class.*","*.class.*","*.Class.*"};
dataBinder.setDisallowedFields(abd);
}
}
参考链接
-
https://github.com/spring-projects/spring-framework/commit/7f7fb58dd0dae86d22268a4b59ac7c72a6c22529
-
https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
-
https://github.com/spring-projects/spring-boot/releases/tag/v2.6.6
-
https://github.com/spring-projects/spring-boot/releases/tag/v2.5.12
原文始发于微信公众号(亚信安全服务):警惕!Spring Framework远程代码执行漏洞修复及防护建议
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论