Spring RCE 0day漏洞到底是真是假?

封面

哈喽,大家好,我是指北君

不知道昨晚大家有没有看到Spring框架曝出RCE 0day漏洞,是填上次漏洞的天坑?
还是逃过了上一劫,却遇到了这一劫呢?天道好轮回,苍天饶过谁?

我太难了

漏洞

在Spring框架的JDK9版本(及以上版本)中,远程攻击者可在满足特定条件的基础上,
通过框架的参数绑定功能获取AccessLogValve对象并注入恶意字段值,从而触发pipeline机制并 写入任意路径下的文件。

指北君在网上给大家找了个有鼻子有眼的文章,阅读量还不少。
其他文章

指北君今天也尝试去找了相关的发布源头,既没有找到所谓的“广东省网络安全应急响应平台”,
也没有找到各种相关文章所提到的具体发布地址。

同时也看到一些说复现的文章和截图,真真假假,假假真真。

如果真是这样,我看到的这个段子,将不是段子。
砖家建议

这将是史诗级打脸现场。

打脸

当然了指北君下面也给出改漏洞的排查方法不怕一万就怕万一,总要提前了解一下。

排查方法

JDK9及以上

项目中使用了spring-beans*.jar 或 存在CachedIntrospectionResults.class文件

解决方案

目前Spring还没有具体的解决方案,目前可以采用以下两种临时方案进行防护。

  1. WAF等防护系统上添加过滤规则
    对 “class.”,“Class.”,“.class.”,“.Class.” 等字符串进行过滤,同时可能产生额外影响。
    如果有多个项目存在安全隐患采用这个方法,较为便捷。
  2. 在单个项目下添加规则限制
import org.springframework.core.annotation.Order;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.InitBinder;

@Order
@ControllerAdvice
public class SpringRCE0Day{

    @InitBinder
    public void setAllowedFields(WebDataBinder dataBinder) {
        String[] fields= new String[]{"class.*",
                    "Class.*", "*.class.*", "*.Class.*"};
        dataBinder.setDisallowedFields(fields);
    }
}

如果说就涉及及个别项目这种方式影响会更小一点。改动后记得重新发布呦。

影响范围

指北君在自己项目搜索了一下。
spring-beans
类

只要使用了Spring框架,谁能逃得掉第二点呢?只能庆幸自己没有使用JDK9了吧?
整个Spring都是围绕着这个spring-beans*.jar的。

而整个Java估计90%都是围绕Spring的吧。

那影响范围还不如直接定义为,使用JDK9及以上版本的项目。
可以看出如果真的有问题影响面还是非常大的。

后续

我们去GitHub上看看是否有相关的问题。

github_issues

确实有人已经说了这个问题但是目前官方没有给出明确答案。

然后指北君又找到了这个。
github_issues

恰巧在出问题的时间,sbrannen提交了一个SerializationUtils相关的代码合并,
然后一度被人认为是官方偷偷修改了bug,但是你好好看下代码就会发现,其实就是把一个返回值封装成了一个clone方法,
github_issues

最后 sbrannen也表示Spring并没有使用 SerializationUtils 去反序列化一个不受信任的对象。
github_issues

直到指北君看到了这个,才觉得这个漏洞真实了几分。

github_issues

由于涉及安全的东西我就不放太多料了。感兴趣的朋友可以跟一下。

目前官方还没有给出明确答复和修复方案。

Spring 最近爆出的另外两个漏洞

SpEL导致的Spring&Spring Cloud Function的漏洞,已经公布了修复方案直接升级版本即可。
github_issues
github_issues
github_issues

指北君有话说

好了今天就到这里吧,我要亲自去试一下。 真的情况多一点,真的假不了,假的真不了,希望各位还是做好充足准备。
反正指北君代码已经加上了,等待公司通知。

在上海的小伙伴最近注意个人防护,最近上海疫情看起来还是挺吓人的。准备好充足的食物。祝大家平安无事。

关注开源指北公众号,后台回复888获取相关资料。

这里是开源指北,我们立志做最好的开源分享平台,分享各种有趣实用的开源项目。

同时也欢迎加入开源指北交流群,欢迎加入交流群,群里你可以摸鱼、划水、吐槽、咨询,
还有简历模板、各种技术面试资料等100G的资源等着你领取哦。快来一起来聊一聊吧!

以上就是本次推荐的全部内容,我是指北君,感谢各位的观看。

结尾图

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值