前言
Spring是Java EE编程领域的一个轻量级开源框架,Spring允许开发人员专注于业务逻辑,简化Java企业级应用的开发周期。
Spring框架的JDK9版本(及以上版本)中,远程攻击者可在满足特定条件的基础上,通过框架的参数绑定功能获取AccessLogValve对象并诸如恶意字段值,从而触发pipeline机制并写入任意路径下的文件。
01漏洞影响范围
1、使用JDK9及以上版本的SpringMVC框架;
2、Spring框架以及衍生的框架Spring-beans-*.jar文件或者存在CachedIntrospectionResults.class;
02检测方案
思客云找八哥SCA软件安全成份分析系统可以对用户的项目开发工程、发布包,组件库,私有仓库,私有制品库进行分析,检索并报告此漏洞。


03修复建议
方案1:
在WAF等网络防护设备上,根据实际部署业务的流量情况,实现对“class.*”“Class.*”“*.class.*”“*.Class.*”等字符串的规则过滤,并在部署过滤规则后,对业务运行情况进行测试,避免产生额外影响。
方案2:
在应用系统的项目包下新建以下全局类,并保证这个类被Spring 加载到(推荐在Controller 所在的包中添加).完成类添加后,需对项目进行重新编译打包和功能验证测试。并重新发布项目。
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 a {
@InitBinder
public void setAllowedFields(WebDataBinder dataBinder) {
String[] abd = new String[]{"class.*", "Class.*", "*.class.*", "*.Class.*"};
dataBinder.setDisallowedFields(abd);
}
}
找八哥SCA软件安全成份分析系统,集软件成份分析和开源组件安全检测为一体的软件安全成份分析与检测系统,能够对400+百万的开源组件近6000+千万的版本进行识别、分析、和安全漏洞检测。能够为用户提供的软件资产的识别,软件开源成份分析以及开源组件安全漏洞的检测,详情请登录官方网址进行了解:http://www.codeforce.com.cn。

扫描下方二维码关注思客云


