【安全警报】Spring DoS漏洞曝光!涉及所有版本,建议立即升级!

一、什么是DoS漏洞

DoS漏洞(拒绝服务攻击漏洞)是指攻击者通过不断发送大量请求或恶意代码,使目标系统负载过高,消耗大量系统资源,导致目标系统无法继续提供正常服务的漏洞。攻击者可能借助计算机网络,同时向目标系统发送大量请求,导致目标系统不堪重负,无法处理其它请求。这可能会导致目标系统崩溃、数据丢失、业务降级等严重后果。DoS漏洞的危害性较高,需要被及时发现和修复。

二、影响和解决方案

CVE-2023-20861:在 Spring Framework 6.0.0-6.0.6、5.3.0-5.3.25、5.2.0.RELEASE-5.2.22.RELEASE 和更早已经不被支持的版本中,用户可以提供一个特殊设计的 SpEL 表达式,它能导致拒绝服务(DoS)攻击。

2.1 受影响的 Spring 产品和版本

Spring Framework:

  • 6.0.0-6.0.6
  • 5.3.0-5.3.25
  • 5.2.0.RELEASE-5.2.22.RELEASE
  • 还有更早已经不再维护的版本也受到影响

2.2 缓解方法

受影响版本的用户应采取以下缓解措施:

  • 6.0.x 用户应升级至6.0.7+。
  • 5.3.x 用户应升级至5.3.26+。
  • 5.2.x 用户应升级至5.2.23.RELEASE+。
  • 使用旧版本的用户应该升级至 6.0.7+ 或 5.3.26+。

已经解决这个问题的版本包括:

Spring Framework:

  • 6.0.7+
  • 5.3.26+
  • 5.2.23.RELEASE+

3.3 漏洞根源

在 SpEL 表达式中为 matches 运算符提供一个大的正则表达式可能会导致不太有用的错误对用户不利。

Improve diagnostics in SpEL for `matches` operator · spring-projects/spring-framework@8010de8 · GitHub

此提交限制了正则表达式中允许的最大字符数,优化 matches 运算符在 SpEL 中的诊断,通过抛出带有有意义的错误消息的 SpelEvaluationException 来更好地帮助用户。

三、信用

这个漏洞最初是由谷歌OSS-Fuzz团队从Code Intelligence发现并负责报告的。

四、参考资料

Common Vulnerability Scoring System Version 3.0 Calculator

https://cwe.mitre.org/data/definitions/770.html

五、历史

2023-03-20:初始漏洞报告发表。

六、Spring Boot

几乎所有的 Spring boot 版本都受影响,Spring Boot 3.0.5 和 2.7.10 将于本周四发布。当然你也可以手动指定 Spring Framework 版本。

在 Gradle build.gradle 中配置:

ext['spring-framework.version'] = '6.0.7'

或者在 Maven pom.xml 中添加:

<properties> <spring-framework.version>6.0.7</spring-framework.version> </properties>

注意: 已经结束商业支持期的 Spring Boot版本需要手动构建 Spring Boot Maven 或 Gradle 升级到安全的Spring Framework。强烈建议升级到受支持的 Spring Boot 版本。

七、总结

Spring Framework 在安全性方面提供了很多强大和全面的解决方案,这些方案能够帮助开发人员轻松地在他们的应用程序中实现高级安全性特性。Spring Security 是其中的一项重要功能,提供了模块化的认证和授权方式,可以轻松集成到 Web 应用中,并支持多种身份验证方式,包括基于表单、指令、口令和 OpenID 等方式。

此外,Spring 框架还支持其他安全性特性,比如 SSL 加密、防止 CSRF 攻击和 XSS 攻击、基于角色的访问控制和 OAuth 2.0 等。它还提供了一个名为 Spring Boot Actuator 的功能,该功能可用于有效地监视、管理和保护应用程序。

总体而言,Spring Framework 提供了非常强大和全面的安全性功能,可用于保护不同规模和类型的 Web 应用程序,从小型应用到大规模互联网应用程序。开发人员可以使用 Spring Framework 帮助他们应对各种安全挑战,从而保护他们的应用程序免受各种安全问题的影响。

此次漏洞涉及范围比较广,Spring Framework、Spring Boot 所有版本全军覆没。此次漏洞引起的原因也是比较简单,也是由于 Spring Framework 应用广泛才被暴露出来。也警醒我们写代码时更要注意细节。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值