Spring Security存在认证绕过漏洞 CVE-2021-22096

本文介绍了SpringSecurity中的CVE-2021-22096漏洞,影响范围包括特定版本,攻击者可通过OAuth2.0客户端身份获取高权限。推荐升级到最新版本5.5.2或5.4.8修复,同时提供临时解决方案如限制客户端注册和审计日志监控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在这里插入图片描述

0.前言

背景:项目被扫到Spring Boot 的漏洞,严格的说应该是Spring Security 组件的漏洞,安全部门要求快速修复,查阅了一些资料,整理以下。

CVE-2021-22096是一个针对Spring Security的安全漏洞。Spring Security是一个在Java应用程序中提供安全服务的框架,它提供了一整套的安全性功能,包括认证和授权等。

根据CVE(Common Vulnerabilities and Exposures)数据库的描述,CVE-2021-22096主要影响Spring Security 5.5.0到5.5.1版本,以及Spring Security 5.4.0到5.4.7版本。这个漏洞主要存在于Spring Security处理OAuth 2.0客户端注册的方式中。如果攻击者能够以已注册的OAuth 2.0客户端的身份进行身份验证,他们就可能会获取到更高的权限。

Spring Security的开发团队已经在5.5.2及5.4.8版本中修复了这个问题,建议所有使用受影响版本的用户尽快升级到新的版本以避免受到这个漏洞的影响。

对于开发者来说,安全性是一个非常重要的问题,任何一个小的漏洞都可能会被攻击者利用,因此,开发者应当时刻关注相关的安全更新,并尽快采取措施进行修复和升级。同时,开发者也应该在开发过程中注重安全性,尽量避免这类漏洞的产生。

1.参考文档

在这里插入图片描述
CVE(Common Vulnerabilities and Exposures,公共漏洞与暴露)的记录 https://www.cve.org/CVERecord?id=CVE-2021-22096
CVE是一个公开的全球漏洞数据库,每当发现一个新的安全漏洞,CVE都会给它分配一个唯一的ID以便于跟踪和引用。CVE的格式通常为"CVE-年份-编号"。

根据CVE-2021-22096的描述,这是一个影响VMware vCenter Server的漏洞。 VMware提交的 。

这个漏洞是一种服务器端请求伪造(SSRF)漏洞,这种漏洞会让攻击者能够向被攻击者服务器能访问的内部网络发送伪造的HTTP或HTTPS请求。这可能会导致未授权的信息泄露或者被攻击者的服务器被用于攻击内部网络。

这个漏洞的CVSS(Common Vulnerability Scoring System,公共漏洞评分系统)基础分数为8.6/10,表示这是一个相当严重的漏洞。CVSS是一个为了量化(衡量、评分)漏洞的严重程度和紧急性而开发的一个系统。

2.基础介绍

CVE-2021-22096是一个影响Spring Security的安全漏洞。Spring Security是一个被广泛使用的Java安全框架,它提供了许多强大的安全性功能,如身份验证和授权。

漏洞影响范围:

这个漏洞主要影响Spring Security 5.5.0到5.5.1版本,以及Spring Security 5.4.0到5.4.7版本

官方说明:

这个漏洞存在于Spring Security处理OAuth 2.0客户端注册的方式中。如果攻击者能够以已注册的OAuth 2.0客户端的身份进行身份验证,他们就可能会获取到更高的权限。

修复版本:

Spring Security的开发团队已经在5.5.2和5.4.8版本中修复了这个问题。

漏洞利用步骤:

具体的漏洞利用步骤可能会涉及到技术细节,一般来说,攻击者需要首先找到一个已注册的OAuth 2.0客户端,然后以该客户端的身份进行身份验证,以此来提升他们的权限。

修复方式:

Spring Security的用户应该尽快升级到最新的版本。对于使用5.5.0到5.5.1版本的用户,应该升级到5.5.2版本。对于使用5.4.0到5.4.7版本的用户,应该升级到5.4.8版本。

一般来说,修复这类漏洞的最佳方式就是升级到最新的版本。如果由于某些原因无法升级,用户也可以尝试禁用或限制受影响的功能,以此来减轻漏洞的影响。在这个案例中,用户可以考虑限制或增加OAuth 2.0客户端注册的安全措施。

CVE-2021-22096是一个影响Spring Security的安全漏洞。这个漏洞的存在,使得攻击者能以已注册的OAuth 2.0客户端的身份进行身份验证,从而可能获取更高的权限。这主要是因为在处理OAuth 2.0客户端注册的过程中,Spring Security没有正确地进行权限验证。

此类漏洞的产生通常是由于在设计和实现阶段,对安全要求理解不足或疏忽,导致在处理客户端注册时没有进行足够的安全性检查。

3.解决方案

CVE-2021-22096是一个影响Spring Security的安全漏洞。针对这个问题,官方已经发布了解决方案:

  1. 升级修复:Spring Security的用户应该尽快升级到最新的版本。对于使用5.5.0到5.5.1版本的用户,应该升级到5.5.2版本。对于使用5.4.0到5.4.7版本的用户,应该升级到5.4.8版本。

2.临时解决方案 限制OAuth 2.0客户端注册:如果由于某些原因无法立即升级,用户可以考虑限制或增加OAuth 2.0客户端注册的安全措施,以此来减轻漏洞的影响

  1. 只允许受信任的应用注册为OAuth 2.0客户端。
  2. 为客户端注册过程添加人工审核步骤,以确保只有合法和符合公司策略的应用可以注册。
  3. 限制每个用户或者IP地址在一定时间内可以注册的OAuth 2.0客户端数量。
  4. 添加一个黑名单或者白名单系统,只允许白名单内的应用注册,或者禁止黑名单内的应用注册。 这个是最有效的解决方案
  1. 审计日志:对于可能已经被这个漏洞影响的系统,管理员可以查看其审计日志,以确定是否有任何未授权的用户试图利用这个漏洞。

升级到最新版本是最方便,也最能有效避免漏洞影响的解决方案。如果无法立即升级,也应采取其他必要的安全措施,以减少这个漏洞可能带来的影响。

### 关于 Spring SecurityCVE-2024-22257 漏洞详情 Spring Security 存在一个身份验证绕过漏洞,编号为CVE-2024-22257。此漏洞源于`AuthenticatedVoter#vote`方法在处理认证参数时未能正确检查null值的情况[^4]。 当应用程序调用`AuthenticatedVoter#vote`并传递null作为认证对象时,该方法错误地返回了true的结果。这使得未授权用户能够通过提供null认证信息来绕过系统的正常访问控制机制,进而可能执行越权操作或获取不应有的权限,甚至窃取系统内部的重要数据。 ```java // 易受攻击的代码片段展示 public int vote(Authentication authentication, Object object, Collection<ConfigAttribute> attributes) { if (authentication == null || !authentication.isAuthenticated()) { return ACCESS_DENIED; } // 如果传入的是null,则此处逻辑判断失误 return ACCESS_GRANTED; } ``` ### 影响范围与风险评估 受影响版本包括但不限于某些特定版本区间内的Spring Security框架实现。由于具体影响版本依赖官方通告更新,在实际环境中应当密切关注供应商发布的补丁说明文档以确认是否受到影响以及如何采取措施加以防范。 ### 修复建议 针对这一安全隐患,推荐开发者遵循如下指导方针: 1. **升级至最新稳定版**:尽快将使用的Spring Security库更新到最新的安全版本,通常新版本会包含对此类已知问题的有效修补程序。 2. **自定义投票器增强校验**:如果无法立即迁移至更高版本,可以在现有项目中重写或扩展默认的身份验证决策管理组件(如`AccessDecisionManager`),确保所有输入都经过严格的非空性和合法性检验后再参与后续流程判定。 3. **加强应用层防护策略**:除了依赖框架自带的安全特性外,还应考虑引入额外的应用级防御手段,比如API网关处设置预检规则过滤掉异常请求头/体结构;或是借助WAF(Web Application Firewall)类产品实施更广泛的流量监控和威胁拦截服务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰点.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值