# 详细信息
## 漏洞信息
2022年3月31日,Spring 官方发布安全更新通告,修复了 Spring Framework 中存在的远程代码执行漏洞,漏洞编号为CVE-2022-22965,在 JDK 9+ 上运行的 Spring MVC 或 Spring WebFlux 应用程序可能容易受到通过数据绑定的远程代码执行 (RCE) 的攻击,该漏洞由于JDK 9 + 中新添加的函数绕过了Spring CachedIntrospectionResults 对ClassLoader获取的限制,导致可以获取到任意ClassLoader,攻击者可以通过发送精心构造的数据请求来注入恶意属性触发漏洞,导致远程代码执行的漏洞风险。
## 漏洞危害
在 JDK 9+ 上运行的 Spring MVC 或 Spring WebFlux 应用程序可能容易受到通过数据绑定的远程代码执行 (RCE) 的攻击,该漏洞由于JDK 9 + 中新添加的函数绕过了Spring CachedIntrospectionResults 对 ClassLoader获取的限制,导致可以获取到任意ClassLoader,攻击者可以通过发送精心构造的数据请求来注入恶意属性触发漏洞,导致远程代码执行的漏洞风险。
## 影响范围
Spring Framework 5.3.X < 5.3.18
Spring Framework 5.2.X < 5.2.20
### 受影响条件(需同时满足):
- JDK 9 及以上版本
- Apache Tomcat 作为 Servlet 容器
- Spring 框架以及衍生的框架
## 修复方案
目前 Spring 官方已经发布了解决上述漏洞的安全更新,建议受影响用户尽快升级到安全版本:
安全版本:
Spring Framework == 5.3.18
Spring Framework == 5.2.20
官方安全版本下载可以参考以下链接:
https://github.com/spring-projects/spring-framework/tags
## 漏洞排查
JDK版本号排查:在业务系统的运行服务器上,运行"java -version"命令,查看JDK版本,如果JDK版本大于9,则可能受该漏洞影响;
Spring 框架使用情况排查:
1. 如果业务系统项目以 jar/war 包形式部署,按照如下的步骤进行判断:
(1) 解压 war/jar 包:将 war/jar 文件的后缀修改为 zip ,解压 zip 文件。
(2) 在解压缩目录下搜索是否存在 spring beans --*.jar 文件(例如 spring beans5.3.16.jar),如存在则说明业务系统使用了 Spring 框架进行开发。
(3) 如果 Spring beans --*.jar 文件不存在,则在解压缩目录下搜索CacheIntrospectionResult.class 文件是否存在,如存在则说明业务系统使用了 Spring 框架进行开发
## 漏洞POC
https://github.com/BobTheShoplifter/Spring4Shell-POC
暂无评论