长按二维码关注
腾讯安全威胁情报中心
腾讯安全攻防团队A&D Team
腾讯安全 企业安全运营团队
Spring官方博客披露了一个远程命令执行漏洞,由于Spring框架存在处理流程缺陷,攻击者可远程实现对目标主机的后门文件写入和配置修改,继而通过后门文件访问获得目标主机权限。
1
漏洞描述
Spring框架存在一个远程命令执行漏洞,由于Spring框架存在处理流程缺陷,攻击者可远程实现对目标主机的后门文件写入和配置修改,继而通过后门文件访问获得目标主机权限。使用Spring框架或衍生框架构建网站等应用,且同时使用JDK版本在9及以上版本的,易受此漏洞攻击影响。
腾讯安全专家研判该漏洞为“高危”,目前该漏洞的技术细节、POC、EXP等相关代码均已公开,危害较大。
Spring框架(Framework)是一个开源的轻量级J2EE应用程序开发框架,提供了IOC、AOP及MVC等功能,解决了程序人员在开发中遇到的常见问题,提高了应用程序开发便捷度和软件系统构建效率。
2
漏洞编号
CVE-2022-22965
CNVD-2022-23942
3
漏洞等级
高危,严重级
漏洞状态:
漏洞细节 |
漏洞PoC |
漏洞EXP |
在野利用 |
已公开 |
已知 |
已知 |
已发现 |
4
受影响的版本
以下环境受影响:
JDK版本号在9及以上,且使用了Spring框架或衍生框架的系统。
Spring Framework 5.3.X < 5.3.18
Spring Framework 5.2.X < 5.2.20
5
安全版本
Spring Framework = 5.3.18
Spring Framework = 5.2.20
6
漏洞排查方法
(一)JDK版本号排查
在业务系统的运行服务器上,执行“java -version”命令查看运行的JDK版本,如果版本号小于等于8,则不受漏洞影响。
(二)Spring框架使用情况排查
1.如果业务系统项目以war包形式部署,按照如下步骤进行判断:
-
解压war包:将war文件的后缀修改成.zip ,解压zip文件;
-
在解压缩目录下搜索是否存在 spring-beans-*.jar 格式的jar文件(例如spring-beans-5.3.16.jar),如存在则说明业务系统使用了spring框架进行开发。
-
如果spring-beans-*.jar 文件不存在,则在解压缩目录下搜索CachedIntrospectionResuLts.class 文件是否存在,如存在则说明业务系统使用了Spring框架开发。
2.如果业务系统项目以jar包形式直接独立运行,按照如下步骤进行判断:
-
解压jar包:将jar文件的后缀修改成.zip,解压zip文件;
-
在解压缩目录下搜索是否存在spring-beans-*.jar 格式的jar文件(例如spring-beans-5.3.16.jar),如存在则说明业务系统使用了spring框架进行开发。
-
如果spring-beans-*.jar 文件不存在,则在解压缩目录下搜索CachedIntrospectionResuLts.class 文件是否存在,如存在则说明业务系统使用了spring框架进行开发。
(三)综合判断
在完成以上两个步骤排查后,同时满足以下两个条件可确定受此漏洞影响:
-
JDK版本号在9及以上的;
-
使用了Spring框架或衍生框架。
7
漏洞复现与验证
腾讯安全专家第一时间对该漏洞进行了复现验证
8
漏洞修复或缓解建议
Spring官方已发布漏洞修复版本,腾讯安全专家建议所有受影响的客户及时升级到安全版本。
下载地址:
https://github.com/spring-projects/spring-framework/tags
或采取如下漏洞缓解措施:
(一)WAF防护
在WAF等网络防护设备上,根据实际部署业务的流量情况,实现对“class.*”“Class.*”“*.class.*”“*.Class.*”等字符串的规则过滤,并在部署过滤规则后,对业务运行情况进行测试,避免产生额外影响。
(二)临时修复措施
需同时按以下两个步骤进行漏洞的临时修复:
1.在应用中全局搜索@InitBinder注解,看看方法体内是否调用dataBinder.setDisallowedFields方法,如果发现此代码片段的引入,则在原来的黑名单中,添加{"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;
public class GlobalControllerAdvice{
public void setAllowedFields(webdataBinder dataBinder){
String[]abd=new string[]{"class.*","Class.*","*.class.*","*.Class.*"};
dataBinder.setDisallowedFields(abd);
}
}
9
腾讯安全解决方案
-
腾讯T-Sec主机安全(云镜)已支持检测企业资产是否受Spring Framework 远程代码执行漏洞影响;
-
腾讯T-Sec高级威胁检测系统(御界)已支持检测利用Spring Framework 远程代码执行漏洞的攻击活动;
-
腾讯T-Sec Web应用防火墙(WAF)已支持检测防御利用Spring Framework 远程代码执行漏洞的攻击活动;
-
腾讯T-Sec云防火墙已支持检测防御利用Spring Framework 远程代码执行漏洞的攻击活动;
-
腾讯T-Sec容器安全产品已支持检测企业容器资产是否受Spring Framework 远程代码执行漏洞影响。
参考链接:
https://github.com/spring-projects/spring-framework
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
https://mp.weixin.qq.com/s/BnF8CWuUxNliCoa260bEaA
关于腾讯安全威胁情报中心
腾讯安全威胁情报中心是一个涵盖全球多维数据的情报分析、威胁预警分析平台。依托顶尖安全专家团队支撑,帮助安全分析人员、安全运维人员快速、准确地对可疑威胁事件进行预警、处置和溯源分析。
长按识别二维码获取第一手威胁情报
原文始发于微信公众号(腾讯安全威胁情报中心):Spring Framework 远程代码执行漏洞(CVE-2022-22965)风险通告,腾讯安全支持检测防御
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论