首页 > 关于安博通 > 新闻中心
【漏洞分析】Spring远程代码执行漏洞解决方案
2022-04-02
1924

作为目前全球最受欢迎的Java轻量级开源框架,Spring允许开发人员专注于业务逻辑,简化Java企业级应用的开发周期。


Spring此前版本存在CVE-2010-1622漏洞,该漏洞由参数自动绑定机制导致,后通过黑名单方式修复。但JDK9后引入了Module,使得可以通过GetModule绕过黑名单限制,最终导致远程代码执行。当前漏洞评级为高危,编号CVE-2022-22965/CNVD-2022-23942 。


攻击者在满足特定条件的情况下,可远程通过框架参数绑定功能获取AccessLogValve对象,从而触发pipeline机制并写入任意路径下的文件。


漏洞影响范围


已知受影响版本:

Spring Framework < 5.3.18

Spring Framework < 5.2.20

及其衍生产品:

JDK ≥ 9

JRE ≥ 9


不受影响版本:

Spring Framework = 5.3.18

Spring Framework = 5.2.20

JDK < 9

JRE < 9


我是否受到该漏洞威胁?(漏洞排查)


Step 1:检查是否使用Spring框架,若未使用,则不存在该漏洞。

由于Java项目存在打包方式各异、Spring Bean常作为基础组件Lib打包、非规范化命名等情况,推荐使用自动化迭代解压的jar方式同时对spring-beans-*.jar和CachedIntrospectionResults.class进行匹配搜索。如果存在匹配,说明使用了Spring框架。


Step 2:检查项目是否使用Spring参数绑定,若未使用,则不存在该漏洞。

由于该漏洞需要利用SpringMVC的参数绑定,因此项目若未使用参数绑定,则不受该漏洞威胁。


Step 3:检查中间件使用的JDK版本,若版本号小于9,则不存在该漏洞。

通过系统进程确认中间件使用的JDK路径,在命令行执行java-version获取当前的JDK版本。


Step 4:检查当前使用的中间件是否为Tomcat,若未使用,则暂不受该漏洞影响。

目前公开的漏洞利用代码只针对Tomcat中间件,但不排除后续有新的利用代码出现。因此,非Tomcat中间件仍存在风险。


Step 5:检查Tomcat是否启用AccessLog,若未启用,则暂不受该漏洞影响。

目前公开的漏洞利用代码是通过覆盖Tomcat日志相关配置实现后门文件写入,但不排除后续有新的利用方式出现。在server.xml配置文件中,通过org.apache.catalina.valves.AccessLogValve关键字,可定位到AccessLog相关配置。


我要如何防护该漏洞?(处置建议)


1、官方防护措施

官方已发布新版本5.2.20.RELEASE和5.3.18修复该漏洞,受影响的用户可尽快进行更新。

下载链接:https://github.com/spring-projects/spring-framework/releases


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);

     }

}

 

3、使用安博通深度安全网关

安博通深度安全网关已支持该漏洞防护,需要将规则包升级到20220331及以上版本。升级位置为:系统维护→系统升级→自动升级,点击立即升级或下载离线特征库手动升级。


1.jpg


  • 规则编号:957764

  • 规则名称:spring framework rce漏洞


防护前对比


2.jpg


防护后效果


3.jpg


参考链接


https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement

https://github.com/spring-projects/spring-framework/compare/v5.3.17...v5.3.18

联系我们
请填写相关信息×

您好!为了提供更优质的服务,请先填写以下信息,帮助我们更快更精准地为您解答。

  • 您的称呼*

  • 电话*

  • 单位*

  • 意向产品

  • 验证码*

  • 提交
×

提交成功

感谢您的反馈!我们将在3个工作日内回复您的需求,请留意查收。