「安全」SPRING FRAMEWORK反射型文件下载漏洞
前言:
21年5月我在发布了自己的博客在服务器上后,仅一天就收到了腾讯云发的安全报警:“spring框架反射型文件下载漏洞”并且在一天之内被异地异常登录攻击了11次(要知道我的域名审批没有下来,要访问我的博客只能通过公网的ip地址)因此,在收到异常报告后我就开始搜索相关信息,并且找到了一年前发布的安全公告。
综述:
20年9月,VMware Tanzu发布安全公告,公布了一个存在于Spring Framework中的反射型文件下载(Reflected File Download,RFD)漏洞CVE-2020-5421。CVE-2020-5421 可通过jsessionid路径参数,绕过防御RFD攻击的保护。先前针对RFD的防护是为应对 CVE-2015-5211 添加的。
攻击者通过向用户发送带有批处理脚本扩展名的URL,使用户下载并执行文件,从而危害用户系统。
官方已发布修复了漏洞的新版本。
Spring Framework是 Java 平台的一个开源全栈应用程序框架和控制反转容器实现,一般被直接称为 Spring。
影响范围:
受影响产品版本
Spring Framework 5.2.0 – 5.2.8
Spring Framework 5.1.0 – 5.1.17
Spring Framework 5.0.0 – 5.0.18
Spring Framework 4.3.0 – 4.3.28
以及其他已不受支持的版本
不受影响产品版本
Spring Framework 5.2.9
Spring Framework 5.1.18
Spring Framework 5.0.19
Spring Framework 4.3.29
版权声明:下文为CSDN博主
「先干再改」的原创文章———— https://blog.csdn.net/dushan1234/article/details/108790058
解决方案:
1.打开腾讯云的漏洞管理,看有哪些漏洞,再接着点击漏洞的名称,腾讯云会告诉你漏洞具体到那个jar包和相应的解决方案。
如下图,全是spring-core的jar包版本问题,我的项目是springcloud框架,所以spring的jar包也是框架自动引入的。系统是一个 老系统,弄到现在springboot的版本是1.5.12,而springboot 1.x如果要升级到2.x的版本,那么从数据库连接池,redis连接池等部分代码都得改写,还有些别的问题,所以不能贸然的修改版本。
那么解决方案不是去修改springcloud和springboot的版本,而是直接在pom文件中修改相应jar包的版本即可,框架会优先读取pom文件中的jar包版本。
mvn的依赖树如图:mvn dependency:tree
解决方案是将版本升级到4.3.29即可
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.29.RELEASE</version>
</dependency>
————————————————
跟据上面博主的方法,我更换了我maven库中原有的,并且更新的版本。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.1</version>
</dependency>
至此,结束!