栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring框架远程命令执行漏洞(CNVD-2022-23942)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring框架远程命令执行漏洞(CNVD-2022-23942)

前言

3月30日,国家信息安全漏洞共享平台(CNVD)收录了Spring框架远程命令执行漏洞(CNVD-2022-23942)。该漏洞是继Apache Log4j2漏洞之后的又一严重漏洞事件,引起业界高度关注。该漏洞可能已被远程攻击者利用,漏洞威胁等级被定为高危、非常紧急。30日晚上朋友圈里更是像过年了一样,都在等一个poc。当天晚上呢这个漏洞的热度极高,也是出现了各种伪造成poc的钓鱼文件,目前呢官方也未给出修复方案。我先针对这个漏洞给出一点我自己的看法,第二天进行复现后发现呢,这个漏洞跟想象的不大一样,我个人觉得很鸡肋,当天聊起这个漏洞的时候就觉得这个漏洞是属于好用的,但是又没啥大用,不知道你们能不能明白我的意思,相对来说一些自研平台可能受影响会大一点。

漏洞简介

Spring是目前最受欢迎的开源轻量级Java框架,近日,Spring被曝存在RCE 0day漏洞。已经证实由于SerializationUtils#deserialize基于Java的序列化机制,可导致远程代码执行(RCE),使用JDK9及以上版本皆有可能受到影响。

漏洞影响范围

据了解,受漏洞影响的产品版本包括:

  1. JDK 版本号 9 及以上的;
  2. 使用了Spring 框架或衍生框架。建议开发者进行JDK版本号(注:如果版本号小于等于8,则不受漏洞影响)和Spring框架使用情况进行排查。
自查

在服务器中执行“java -version”命令查看运行的JDK版本,如果版本号小于等于8,则不受漏洞影响

修复方案

目前,Spring官方已发布新版本完成漏洞修复,CNVD建议受漏洞影响的产品(服务)厂商和信息系统运营者尽快进行自查,并及时升级至最新版本:https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
缓释方案
1.在应用中全局搜索@InitBinder注解,方法体中若调用dataBinder.setDisallowedFields,则在原来的黑名单中添加"class.","Class.", “.class.”, “.Class.”。
【注:如果此代码片段使用较多,需要每个地方都追加。】
2.若未发现,可通过@ControllerAdvice进行全局拦截,通过WebDataBinder中setDisallowedFields方法添加黑名单。参考代码:

importorg.springframework.web.bind.WebDataBinder;
importorg.springframework.web.bind.annotation.ControllerAdvice;
importorg.springframework.web.bind.annotation.InitBinder;

@ControllerAdvice
@Order(Ordered.LOWEST_PRECEDENCE)
public class BinderControllerAdvice {
    @InitBinder
    public voidsetAllowedFields(WebDataBinder dataBinder) {
         String[] denylist = newString[]{"class.*", "Class.*", "*.class.*","*.Class.*"};
        dataBinder.setDisallowedFields(denylist);
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/855069.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号