编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

警惕!Spring Framework远程代码执行漏洞修复及防护建议

wxchong 2024-07-11 01:28:32 开源技术 10 ℃ 0 评论

漏洞描述

近日,亚信安全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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表