您的位置 首页 java

疯了!Spring 再官宣惊天大漏洞

Spring 官宣高危漏洞

大家好,我是栈长。

前几天爆出来的 Spring 漏洞,刚修复完又来?

今天愚人节来了,这是和大家开玩笑吗?

不是的,我也是猝不及防!这个玩笑也开的太大了!!

你之前看到的这个漏洞已经是过去式了:

我以为是终点,没想到只是起点, 现在 Spring 又官宣了最新的高危漏洞:

Early Announcement??这只是一个早期的公告?可能还有中期?后期?往下面继续看就知道了!

漏洞详情

漏洞CVE-2022-22965 漏洞名称远程代码执行漏洞 严重级别高危 影响范围 Spring Framework
– 5.3.0 ~ 5.3.17
– 5.2.0 ~ 5.2.19
– 老版本及其他不受支持的版本

麻了,麻了,这次是高危,必须引起重视啊!!

漏洞描述:

用户可以通过数据绑定的方式引发远程代码执行 (RCE) 攻击漏洞,触发的前提条件如下:

  • JDK 9+
  • Apache Tomcat (war 包部署形式)
  • Spring MVC/ Spring WebFlux 应用程序

使用 Spring Boot 开发一般都是打成 jar 包,默认内嵌 Tomcat 形式 ,这对使用 Docker / 微服务这种应用特别合适,但也可以切换为 war 包部署,但很少使用,但也不是没有,比如说一般的传统项目,为了兼容老环境,或者运维统一维护 Tomcat 环境,可能也会使用 war 包部署。

所以,如果你使用的是默认的 Spring Boot 可执行 jar 包默认内嵌 Tomcat 部署,则不受影响, 但由于这个漏洞的普遍性,可能还有其他方式进行利用。。难道这就是 Early Announcement 的含义?还来,真要搞疯了!

如果你想关注和学习最新、最主流的 Java 技术,可以持续关注公众号Java技术栈,公众号第一时间推送。

Java技术栈 专注分享 Java 技术干货,包括 多线程 JVM 、Spring Boot、Spring Cloud、 Intellij IDEA Dubbo Zookeeper Redis 、架构设计、微服务、消息队列、 Git 、面试题、程序员攻略、最新动态等。502篇原创内容

公众号

解决方案

Spring 用户升级到以下安全版本:

  • Spring 5.3.18+
  • Spring 5.2.20+

Spring Boot 用户升级到以下安全版本:

  • Spring Boot 2.6.6+
  • Spring Boot 2.5.12+

麻了麻了!又得升级??这 Spring Boot 2.6.5 刚发布没几天。。。可能由于这个漏洞太过于高危,没有办法,必须升级主版本应对,以免用户使用了带了漏洞的版本。

但是,如果不想升级框架主版本,也是可以的,毕竟很多应用不一定会兼容 Spring Boot 最新版本,比较 Spring Cloud 或者其他依赖的底层框架。

Spring Boot 用户可以使用以下方法临时解决:

 package car.app;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.web.servlet.WebMvcRegistrations;
import org.springframework.context. annotation .Bean;
import org.springframework.web.bind.Servlet request DataBinder;
import org.springframework.web.context. Request .NativeWebRequest;
import org.springframework.web.method.annotation.InitBinderDataBinderFactory;
import org.springframework.web.method.support.InvocableHandlerMethod;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
import org.springframework.web.servlet.mvc.method.annotation. Servlet RequestDataBinderFactory;


@SpringBootApplication
public class MyApp {

 public  static   void  main(String[] args) {
  SpringApplication.run(CarApp.class, args);
 }

 @Bean
 public WebMvcRegistrations mvcRegistrations() {
  return new WebMvcRegistrations() {
   @Override
   public RequestMappingHandlerAdapter getRequestMappingHandlerAdapter() {
    return new ExtendedRequestMappingHandlerAdapter();
   }
  };
 }


  private  static class ExtendedRequestMappingHandlerAdapter  extends  RequestMappingHandlerAdapter {
  @Override
  protected InitBinderDataBinderFactory createDataBinderFactory(List<InvocableHandlerMethod> methods) {
   return new ServletRequestDataBinderFactory(methods, getWebBindingInitializer()) {
    @Override
    protected ServletRequestDataBinder createBinderInstance(
      Object target,  String  name, NativeWebRequest request) throws  Exception  {
     ServletRequestDataBinder binder = super.createBinderInstance(target, name, request);
     String[] fields = binder.getDisallowedFields();
     List<String> fieldList = new ArrayList<>(fields != null ? Arrays.asList(fields) : Collections.emptyList());
     fieldList.addAll(Arrays.asList("class.*", "Class.*", "*.class.*", "*.Class.*"));
     binder.setDisallowedFields(fieldList.toArray(new String[] {}));
     return binder;
    }
   };
  }
 }
}

  

如果没用过 Spring Boot,这份《Spring Boot 学习笔记,这个太全了!》分享给你学习下,没用 Spring Boot 可以从 @EnableWebMvc 注解直接切换为扩展 DelegatingWebMvcConfiguration ,然后重写其 createRequestMappingHandlerAdapter 方法,具体可以参考:

总结

总结下这次受影响的用户:

  • JDK 9+
  • Apache Tomcat(WAR 包部署形式)
  • Spring MVC/ Spring WebFlux 应用程序

这次的大漏洞虽然是高危的,国内可能影响面有限。 影响的关键还是JDK 9+ 的用户 ,国外用 JDK 9+ 的比较多,JDK 11 和 JDK8 占据主要阵营,JDK 17+ 也在逐步发力替代 JDK 8。

据我了解,国内用 JDK 8 的比较多,JDK 9+ 应该只是少部分群体,如果你用的 JDK 8 及以下版本,那恭喜你,目前不受影响,否则尽快修复、升级保平安。

另外还有两点要澄清一下:

1)关于 Spring 弃用 SerializationUtils 工具类的动作大家不要误解,这个工具类在 Spring 框架中只有一种用法,并且不会暴露于外部输入,弃用动作与此漏洞无关。

2)对于在报告此漏洞之前发布的 Spring Cloud Function 的漏洞 存在一些猜疑,这也和本漏洞无关。

最后,希望这次真的是终点了。。

参考文档:

来源:

文章来源:智云一二三科技

文章标题:疯了!Spring 再官宣惊天大漏洞

文章地址:https://www.zhihuclub.com/196117.shtml

关于作者: 智云科技

热门文章

网站地图