漏洞描述
近日,亚信安全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】已经支持对该漏洞的检测,请用户及时更新规则,以形成安全产品检测和防护能力。
漏洞复现
亚信安全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
本文暂时没有评论,来添加一个吧(●'◡'●)