一、背景介绍
3月29日,市委网信办技术支撑单位监测到Spring框架远程代码执行RCE 0-Day漏洞,该漏洞的适用面较广,影响较大。
1.1 漏洞描述
该漏洞已经被证实,Spring中存在的漏洞,结合 jdk9 及以上新版本的特性,在成功利用此漏洞可以导致权限提升,可导致任意命令执行、文件读取、后门、DoS攻击等危害。
1.2 漏洞编号
暂无
1.3 漏洞等级
严重
二、修复建议
2.1 漏洞受影响条件
- JDK 9 及以上版本
- Spring 框架以及衍生的框架,存在spring-beans-*.jar文件或者存在CachedIntrospectionResults.class
2.2 漏洞排查方法 - JDK版本号排查:在业务系统的运行服务器上,Windows 操作系统可在运行中执行cmd 打开命令行窗口, Linux 操作系统可打开控制台窗口。执行 “java version” 命令查看运行的 JDK 版本。如果版本号小于等于 8 ,则不受漏洞影响。
- Spring 框架使用情况排查:
a. 如果业务系统项目以 war 包形式部署,按照如下的步骤进行判断:
(1)解压 war 包:将 war 文件的后缀修改为 zip ,解压 zip 文件。
(2)在解压缩目录下搜索是否存在 spring beans —.jar 文件(例如 spring beans5.3.16.jar ),如存在则说明业务系统使用了 Spring 框架进行开发。 (3)如果 Spring beans —.jar 文件不存在,则在解压缩目录下搜索CacheIntrospectionResult.class 文件是否存在,如存在则说明业务系统使用了 Spring 框架进行开发
b.如果业务系统项目以 jar 包形式直接独立运行,按照如下的步骤进行判断:
(1)解压 jar 包:将 jar 文件的后缀修改成 zip ,解压 zip 文件。
(2)在解压缩目录下搜索是否存在 spring beans —.jar 格式的 jar 文件(例如 spring beans 5.3.16.jar ),如存在则说明业务系统使用了 Spring 框架进行开发。 (3)如果 Spring beans —.jar 文件不存在 ,则在解压缩目录下搜索CacheIntrospectionResult.class 文件是否存在,如存在则说明业务系统使用了 Spring 框架进行开发
2.3 缓解措施
解决方案:
将 Spring 框架升级到 5.3.17 版本,官方已修复!