Spring框架惊爆大漏洞 启明星辰提供漏洞扫描和消控方案

发布时间 2022-04-02

近期,启明星辰漏扫团队在漏洞监控中发现Spring框架中存在一个严重的远程代码执行漏洞,该漏洞影响Jdk 9.0以上版本的Spring框架及其衍生框架,包括但不限于Spring Cloud、Spring Boot等。


此漏洞利用方式简单,危害严重。Spring官方已针对此漏洞发布新版本,建议用户尽快升级版本或采取其他防护措施,避免受到该漏洞的攻击。


漏洞概述


1、漏洞基本描述


3月31日,VMware发布安全公告,修复了Spring Framework中的远程代码执行漏洞(CVE-2022-22965)。在 JDK 9 及以上版本环境下,可以利用此漏洞在未授权的情况下,在目标系统上写入恶意程序,从而远程执行任意代码。


该漏洞影响了在JDK 9+上运行的Spring框架或其衍生框架构建的网站或应用,目前官方已在Spring Framework 5.3.18+和5.2.20+中修复了此漏洞。鉴于此漏洞的PoC/EXP已公开,建议相关用户尽快排查修复。


2、漏洞影响情况


运行环境为:JDK9及以上版本

受影响的产品及版本:

Spring Framework 5.3.0 -5.3.17

Spring Framework 5.2.0 - 5.2.19

漏洞可利用性:高


漏洞排查


当同时满足以下条件时,表明可能受此漏洞影响:

① JDK版本 >= 9;

② 使用Spring框架或衍生框架,当前使用了Tomcat中间件(目前公开的漏洞利用代码只针对Tomcat中间件,但不排除存在其它风险)。


排查方法:

① JDK版本号排查

执行“java -version"命令查看JDK版本,如果版本号小于等于8,则不受此漏洞影响。


② Spring框架使用情况排査


•如果业务系统项目以war包形式部署,按照如下的步骤进行判断:


解压war包:将war文件的后级修改成 .zip文件;

在解压缩目录下搜索是否存在spring-beans-*.jar格式的文件(例如spring-beans-5.3.16.jar),如存在则说明业务系统使用了 Spring框架进行开发;如果spring-beans-*.jar文件不存在,则在解压缩目录下搜索CachedlntrospectionResults.class文件是否存在,如存在则说明业务系统使用了 Spring框架进行开发。


•如果业务系统项目以jar包形式独立运行,按照如下的步骤进行判断:


解压jar包:将jar文件的后缀修改成zip,解压zip 文件;

在解压缩目录下搜索是否存在spring-beans-*.jar格式的jar文件(例如spring-beans-5.3.16.jar),如存在则说明业务系统使用了 Spring框架进行开发;如果spring-beans-*.jar文件不存在,则在解压缩目录下搜索CachedIntrospectionResults.class文件是否存在,如果存在则说明业务系统使用了 Spring框架进行开发。


漏洞验证


根据上述漏洞分析结果,我们使用了公开提权脚本对该漏洞进行了验证。


至此发现文件写入并执行了相应的命令,访问webshell发现成功执行whoami命令,结果为root。


漏洞检测


启明星辰漏扫系统已于2022年3月31日紧急发布针对该漏洞的升级包,支持对该漏洞进行原理扫描,用户升级标准漏洞库后即可对该漏洞进行扫描:


6070版本升级包为607000425

升级包下载地址:

https://venustech.download.venuscloud.cn/

授权扫描方式.png

授权扫描方式


原理扫描方式.png

原理扫描方式


请使用启明星辰漏扫系统产品的用户尽快升级到最新版本,及时对该漏洞进行检测,以便尽快采取防范措施。


启明星辰Web应用检测系统已于2022年3月31日紧急发布针对该漏洞的升级包,支持对该漏洞进行扫描,用户升级启明星辰Web漏扫产品漏洞库后即可对该漏洞进行扫描:



升级包版本:7d_V3.0.5

升级包下载地址:

https://venustech.download.venuscloud.cn/


升级后已支持该漏洞

请启明星辰Web应用检测系统产品的用户尽快升级到最新版本,及时对该漏洞进行检测,以便尽快采取防范措施。



基线核查


启明星辰安全配置核查管理系统已于2022年3月31日紧急发布针对该漏洞的核查资源包,支持对该漏洞进行核查,用户升级安全配置核查管理系统资源包后后即可对该漏洞进行核查:



临时措施


需同时按以下两个步骤进行漏洞的临时修复:


1、在应用中全局搜索@InitBinder注解,看看方法体内是否调用dataBinder.setDisallowedFields方法,如果发现此代码片段的引入,则在原来的黑名单中,添加{"class.*","Class.*","*.class.*","*.Class.*"}。注:如果此代码片段使用较多,需要每个地方都追加。


2、在用系统的项目包下新建以下全局类,并保证这个类被Spring 加载到(推荐在Controller所在的包中添加)。完成类添加后,需对项目进行重新编译打包和功能验证测试,并重新发布项目。


修复建议


通用修复:目前官方已经修复了此漏洞,受影响用户可以升级更新到Spring Framework 5.3.18或5.2.20。


下载链接:

https://github.com/spring-projects/spring-framework/tags