突发 Spring疑似沦陷了
  15IGvTs2qwFn 2023年11月02日 29 0


前晚,一位搞安全的朋友给我发消息说,Spring 框架有个大瓜。

突发 Spring疑似沦陷了_spring

真香,刚刚经历了 log4j2 这个大雷,咱们 java 程序员引以为傲的Spring框架也报了RCE(远程命令执行),啪啪打脸~

目前,影响范围:JDK9、10、11 ,且使用了Spring框架。

之前 log4j2 爆出后,大部分企业都升级了JDK的版本,而这次 Spring RCE Leak 又刚好存在于高版本的 JDK 中。

因此,下面这两张图在安全圈子里面刷屏了,大家都调侃起来了~

突发 Spring疑似沦陷了_字符串_02

突发 Spring疑似沦陷了_spring_03

同时朋友也给我发来了一条链接,Spring官方有一个提交疑似来解决 Spring RCE Leak。

https://github.com/spring-projects/spring-framework/commit/7f7fb58dd0dae86d22268a4b59ac7c72a6c22529

就以上这些信息看来,似乎确实是有问题!

但是官方目前并没有发声明,大家不用太担心。

临时修复方案

考虑到有些读者可能不放心,下面是我在网上看到的修复方案,大家可以参考一下。

需同时按以下两个步骤进行临时修复。

1、在应用中全局搜索@InitBinder注解,看看方法体内是否调用dataBinder.setDisallowedFields方法,如果发现有此代码片段的引入,则在原来的黑名单中,添加{"class.*","Class. *","*. class.*", "*.Class.*"},如果此代码片段使用较多,需要每个地方都追加。

2、在应用系统的项目包下新建以下全局类,并保证这个类被Spring 加载到,建议在controller所在的包中添加;完成类添加后,需对项目进行重新编译打包和功能验证测试,并重新发布项目,实例如下:

@ControllerAdvice
@Order(0)
public class GlobalControllerAdvice{
@InitBinder
public void setAllowedFields(webdataBinder dataBinder){
       String[]abd=new string[]{"class.*","Class.*","*.class.*","*.Class.*"};
       dataBinder.setDisallowedFields(abd);
     }
}

其实,如果有waf的话,也可以在waf中配置 class.*,Class.*,*.class.*,*.Class.* 字符串进行过滤。

PS:防止找不到本篇文章,可以收藏点赞,方便翻阅查找哦

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
15IGvTs2qwFn