解析Spring 漏洞及其修复方案

目录
  • 漏洞分析
  • 影响范围
  • 解决方案
  • 参考资料:

Spring社区发布了一篇名为《Spring Framework RCE, Early Announcement》的文章,官宣了最近网传的Spring漏洞。攻击者利用该漏洞,可在未授权的情况下远程执行命令。目前,漏洞利用细节已大范围公开,好在Spring官方已发布补丁修复该漏洞。

漏洞分析

Spring框架(Framework)是一个开源的轻量级J2EE应用程序开发框架,提供了IOC、AOP及MVC等功能,解决了程序人员在开发中遇到的常见问题,提高了应用程序开发便捷度和软件系统构建效率。

2022年3月30日,CNVD平台接收到蚂蚁科技集团股份有限公司报送的Spring框架远程命令执行漏洞。由于Spring框架存在处理流程缺陷,攻击者可在远程条件下,实现对目标主机的后门文件写入和配置修改,继而通过后门文件访问获得目标主机权限。使用Spring框架或衍生框架构建网站等应用,且同时使用JDK版本在9及以上版本的,易受此漏洞攻击影响。这次确定的Spring核心框架中的RCE漏洞,CVE号为CVE-2022-22965

影响范围

该漏洞的利用需要满足下面的条件:

  • JDK 9 +
  • 使用Apache Tomcat部署
  • 使用WAR方式打包
  • 依赖spring-webmvc或spring-webflux

虽然,可能国内大部分用户还在用JDK 8、或者采用内置Tomcat的方式运行,但由于该漏洞的特性比较普遍,不排除其他利用方式的存在。所以,DD还是建议在有条件的情况下,尽快升到最新版本来避免可能存在的风险发生。

解决方案

目前,Spring官方已发布新版本完成漏洞修复,CNVD建议受漏洞影响的产品(服务)厂商和信息系统运营者尽快进行自查,并及时升级至最新版本,升级情况如下:

  • Spring 5.3.x用户升级到5.3.18+
  • Spring 5.2.x用户升级到5.2.20+
  • Spring Boot 2.6.x用户升级到2.6.6+
  • Spring Boot 2.5.x用户升级到2.5.12+

参考资料:

https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
https://github.com/spring-projects/spring-framework/compare/v5.3.17…v5.3.18

到此这篇关于解析Spring 漏洞及其修复方案的文章就介绍到这了,更多相关Spring 漏洞修复内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Spring Framework远程代码执行漏洞分析(最新漏洞)

    目录 1.漏洞描述 2.漏洞影响排查方法 2.1.JDK 版本号排查 2.2.Spring 框架使用情况排査 3.解决方案 3.1.版本升级 3.2.缓解措施 Spring Framework远程代码执行漏洞 发布时间 2022-03-31 漏洞等级 High CVE编号 CVE-2022-22965 影响范围:同时满足以下三个条件可确定受此漏洞影响: JDK 版本 >= 9 使用了 Spring 框架或衍生框架 项目中 Controller 参数接收实体类对象并存在代码调用 1.漏洞描述 Sp

  • 解析Spring 漏洞及其修复方案

    目录 漏洞分析 影响范围 解决方案 参考资料: Spring社区发布了一篇名为<Spring Framework RCE, Early Announcement>的文章,官宣了最近网传的Spring漏洞.攻击者利用该漏洞,可在未授权的情况下远程执行命令.目前,漏洞利用细节已大范围公开,好在Spring官方已发布补丁修复该漏洞. 漏洞分析 Spring框架(Framework)是一个开源的轻量级J2EE应用程序开发框架,提供了IOC.AOP及MVC等功能,解决了程序人员在开发中遇到的常见问题,提

  • 在PHP中使用FastCGI解析漏洞及修复方案

    漏洞描述: Nginx默认是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设置SCRIPT_FILENAME.当访问http://192.168.1.102/phpinfo.jpg/1.php这个URL时,$fastcgi_script_name会被设置为"phpinfo.jpg/1.php",然后构造成SCRIPT_FILENAME传递给PHP CGI.如果PHP中开启了fix_pathinfo这个选项,PHP会认为SCRIPT_FILENAME是ph

  • 解析Spring Data JPA的Audit功能之审计数据库变更

    一.数据库审计 数据库审计是指当数据库有记录变更时,可以记录数据库的变更时间和变更人等,这样以后出问题回溯问责也比较方便.对于审计表记录的变更可以两种方式,一种是建立一张审计表专门用于记录,另一种是在数据库增加字段.本文所讨论的是第二种方案. 那如何在新增.修改.删除的时候同时增加记录呢?如果每张表都单独记录,代码就会显得很冗余.更好的方式应该是做切面或者事件监听,当数据有变更时统一进行记录. 二.Spring Data JPA审计 Spring Data JPA为我们提供了方便的Audit功能

  • Apache Log4j2 报核弹级漏洞快速修复方法

    Apache Log4j2 报核弹级漏洞,栈长的朋友圈都炸锅了,很多程序猿都熬到半夜紧急上线,昨晚你睡了吗?? Apache Log4j2 是一个基于Java的日志记录工具,是 Log4j 的升级,在其前身Log4j 1.x基础上提供了 Logback 中可用的很多优化,同时修复了Logback架构中的一些问题,是目前最优秀的 Java日志框架之一. 此次 Apache Log4j2 漏洞触发条件为只要外部用户输入的数据会被日志记录,即可造成远程代码执行. 影响版本 2.0 <= Apache

  • 通过实例解析Spring组合注解与元注解

    这篇文章主要介绍了通过实例解析Spring组合注解与元注解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.概述 1.1.Spring提供了大量的注解, 尤其是相同的注解用到各个类中,会相当的啰嗦: 1.2.元注解: 可以注解到别的注解上的注解: 组合注解: 被注解注解的注解称为 组合注解: 组合注解 具备 元注解 的功能,Spring的很多注解都可以作为元注解: 1.3.案例 package com.an.config; import co

  • 通过实例解析spring bean之间的关系

    这篇文章主要介绍了通过实例解析spring bean之间的关系,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 两种关系:继承.依赖 一.继承关系 Address.java package com.gong.spring.beans.autowire; public class Address { private String city; private String street; public String getCity() { retur

  • 全面解析Spring Security 内置 Filter

    1. 前言 上一文我们使用 Spring Security 实现了各种登录聚合的场面.其中我们是通过在 UsernamePasswordAuthenticationFilter 之前一个自定义的过滤器实现的.我怎么知道自定义过滤器要加在 UsernamePasswordAuthenticationFilter 之前.我在这个系列开篇说了 Spring Security 权限控制的一个核心关键就是 过滤器链 ,这些过滤器如下图进行过滤传递,甚至比这个更复杂!这只是一个最小单元. Spring Se

  • 解析spring加载bean流程的方法

    spring作为目前我们开发的基础框架,每天的开发工作基本和他形影不离,作为管理bean的最经典.优秀的框架,它的复杂程度往往令人望而却步.不过作为朝夕相处的框架,我们必须得明白一个问题就是spring是如何加载bean的,我们常在开发中使用的注解比如@Component.@AutoWired.@Socpe等注解,Spring是如何解析的,明白这些原理将有助于我们更深刻的理解spring.需要说明一点的是spring的源码非常精密.复杂,限于篇幅的关系,本篇博客不会细致的分析源码,会采取抽丝剥茧

  • 浅谈Spring Cloud Netflix-Ribbon灰度方案之Zuul网关灰度

    Eureka默认集成了Ribbon,所以Ribbon的灰度实现原理就是借助服务注册到Eureka中的eureka.instance.metadata-map的内容来进行匹配的. Zuul网关的灰度实现也是借助了一个Ribbon的插件来实现,相对比较简单. 项目环境说明:有两个eureka的服务端(eureka-server),有两个相同的后端服务(service-sms),有一个网关服务(cloud-zuul). 1.网关的依赖: <?xml version="1.0" enco

  • 解析Spring中的静态代理和动态代理

    一.静态代理 1.1.静态代理的使用 静态代理,代理类和被代理的类实现了同样的接口,代理类同时持有被代理类的引用,这样,当我们需要调用被代理类的方法时,可以通过调用代理类的方法来做到.举例如下: 假设领导的工作是开会和给员工考评. 先定义一个接口: package com.sharpcj; public interface IWork { void meeting(); int evaluate(String name); } 然后定义领导类: package com.sharpcj; impo

随机推荐