Spring Framework被曝出0day远程漏洞
发布时间: 2022-04-01 浏览次数:

一、事件概况

329日深夜,Spring Framework被曝出存在了十多年的rce远程漏洞,cve编号CVE-2022-22965。在31日曝出spring cloudrce漏洞(CVE-2022-22947)之后,spring再次被报道了范围更广的rce 0day漏洞。

完整的漏洞复现过程与分析报告已在网站上公开。Spring官方现已推出紧急修复版本,现在可以从Maven Central获得。

 

有关漏洞的最新情况可以通过官方漏洞报告网址跟踪

CVE-2022-22965https://tanzu.vmware.com/security/cve-2022-22965

CVE-2022-22947https://tanzu.vmware.com/security/cve-2022-22947

 

二、受到影响的用户

以下受到漏洞攻击的要求:

JDK 9 或更高版本

Apache Tomcat 作为 Servlet 容器

打包为传统的 WAR

添加了spring-web mvcspring-web flux依赖

Spring Framework 版本 5.3.0 5.3.175.2.0 5.2.19 以及更早的版本

但是,该漏洞的性质更为普遍,可能还有其他尚未报告的利用方法。

 

三、事件进展

329

该问题首先由 AntGroup FG codeplutos, meizjm3i 格林威治标准时间接近午夜时分 VMware 报告。

image.png 

330

Spring官方进行了调查、分析、确定修复、测试,同时计划于周四发布紧急修复版本同时,该漏洞的详细信息已在网上全面泄露

 

331

[10:59 GMT] Spring Framework 版本5.3.185.2.20已推出,可解决该漏洞。Spring Boot 的发布过程正在进行中。

[11:11 GMT]官方漏洞公告网页添加disallowedFields修复配置。

[11:34 GMT]官方漏洞公告网页添加了Am I Impacted部分。

[12:03 GMT]官方漏洞公告网页添加了Misconceptions部分。

[13:00 GMTCVE-2022-22965已发布。

[13:38 GMTSpring Boot 2.5.12可用。

[14:40 GMT] Spring Boot 2.6.6可用。

image.png 

四、建议的解决方法

如果项目能够升级到 Spring Framework 5.3.18或者5.2.20SpringBoot2.5.12或者2.6.6,直接升级即可修复漏洞。

 

五、临时解决方法

如果项目java的版本能够降级到jdk8,可以避免该漏洞。

漏洞报告建议WebDateBinder配置DisallowedFields通过以下方式添加@ControllerAdvice注解来临时修复

image.png 

这通常有效,但作为集中应用的修复解决方法,仍然可能会留下一些漏洞。特别是如果控制器disallowedFields通过自己的方法在本地@InitBinder设置,这会覆盖全局设置。

 

官方建议,为了以更安全的方式应用解决方法,应用程序可以扩展RequestMappingHandlerAdapter,以在所有其他初始化完成后最后更新WebDataBinder为此,Spring Boot 应用程序可以声明一个WebMvcRegistrationsbean (Spring MVC) 或一个WebFluxRegistrationsbean (Spring WebFlux)

image.png 

例如在 Spring MVC 中(在 WebFlux 中类似):

 图片11.png

 

六、误解

关于该漏洞有一些错误的猜测与弃用SerializationUtils有关。此类在框架内只有一种用途,并且不暴露于外部输入。弃用此类漏洞无关。

该漏洞与之前发布 Spring Cloud Function漏洞存在混淆。这两者也是无关的。

image.png 

希望广大开发者能尽快修复该漏洞,漏洞信息与复现过程、复现工具已在网上公开,如果系统存在该漏洞的应用场景又没有及时修复,将会承受很大风险。