2022年3月28日,Spring官方发布了一则消息,暴露Spring核心框架具有Dos漏洞:CVE-2022-22950。
同时,该漏洞是一种潜在的漏洞,但是利用该漏洞进行该攻击服务的手段的门槛较高,需要利用可控可执行的SPEl(SpringExpressionLanguage,Spring表达式语言)。
三月初,spring官方爆出springcloudgateway漏洞,其修复方式就是利用了SimpleEvaluationContext,但是SimpleEvaluationContext并不就一定安全,只要SPEL可控,那么就会有Dos漏洞。
例子如下:
从上可以发现,SPEL可控还是会导致OOM并耗尽CPU以实现拒绝服务。
修复方式
临时修复措施:需要同时按照以下2个步骤进行漏洞的临时修复:
1.在应用中全局搜索@InitBinder注解(该注解用于注册类型绑定器,对spring的参数绑定进行增强)。看看方法体内是否调用dataBinder.setDisallowedPields方法,如果发现此代码片段的引入,则在原来的黑名单中,添加{"class.*","Class.*","*.class.*","*.Class.*"}(注:如果此代码片段使用较多,需要每个地方都加上)2.在应用系统的项目包下新建以下全局类,并保证这个类被Spring加载到(推荐在Controller所在的包中添加)。完成类添加后,需对项目进行重新编译打包和功能验证测试,并重新发布项目。
Spring官方修复建议:1.springframework升级到最新发布的SpringFramework5.3.172.SpringBoot用户应升级到2.5.11或2.6.5。
我们从容应对
该项漏洞目前还未发布到NVD网站上,谐云DevOps可信源产品,通过漏洞的自行建立,可信源库和漏洞库建立起对Java代码依赖包的管理,可从容应对紧急发布的CVE-2022-22950漏洞。 谐云DevOps可信源产品对去年底爆出的Apache Log4j2高危漏洞应对详情可点击该链接了解详情:Apache Log4j2高危漏洞
产品介绍
谐云DevOps平台是面向软件研发团队的一站式研发协作管理平台,提供从需求到设计、开发、构建、测试、发布到部署的全流程协同及研发工具支撑。全面满足企业研发管理与工程效率等需求,一站式提高管理效率和软件研发质量,助力团队快速实践敏捷开发与 DevOps,提升软件交付质量与速度,助推企业数智化转型升级。
可信源管理从项目持续集成、发版门禁源头堵截高危漏洞上线,维护应用依赖版本库,当发现漏洞后可以直接创建工单针对性修复。平台支持定期从中央漏洞库拉取漏洞,在流水线运行过程中对使用到的依赖包做扫描校验,在申请发布前的对发布版本做扫描拦截,扫描范围包括漏洞、基线、可信源匹配,可信源冲突、门禁。在代码合并前经过多人审批,并设置分支保护权限,从而规避相应风险,提高安全等级。
建立漏洞库
定期从中央漏洞库(NVD)拉取漏洞导入系统,支持全量同步、增量同步和手动同步。在收到漏洞后可以进行漏洞影响分析,查看漏洞的关联应用血缘和可信源血缘,并发送预警通知。
但是对于还未在NVD发布的漏洞,我们可以实行紧急措施,自行建立该漏洞,并手动关联,在后续NVD发布漏洞后会自动进行合并。
漏洞血缘关系,火眼金睛让高危项目无处遁形
通过漏洞紧急建立以后,就可以立即的看出所有被漏洞所设计到的引用依赖。
也可以通过规则检查寻找到所有已发布并涉及到该漏洞的项目,以及每个项目都引用了哪些依赖。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。