• 我的位置:
  • 首页
  • -
  • 漏洞预警
  • -
  • 应用
  • -
  • Spring Security身份认证绕过漏洞CVE-2022-31692
    • CNNVD编号:未知
    • 危害等级: 高危 
    • CVE编号:CVE-2022-31692
    • 漏洞类型: 身份认证绕过
    • 威胁类型:未知
    • 厂       商:未知
    • 漏洞来源:深信服
    • 发布时间:2023-03-20
    • 更新时间:2023-03-20

    漏洞简介

    2022 年11月4日,深信服安全团队监测到一则 Spring Security 组件存在身份认证绕过漏洞的信息,漏洞编号:CVE-2022-31692,漏洞威胁等级:高危。

    该漏洞由于 Spring Security 中的 authorizeHttpRequests 方法中存在缺陷,开发者使用 forward 方式将客户端请求转发至高权限路由时可能导致权限绕过,攻击者可利用该漏洞越权访问受保护的界面,甚至获取管理员权限。

    漏洞公示

    暂无

    参考网站

    https://nvd.nist.gov/vuln/detail/CVE-2022-31692

    https://tanzu.vmware.com/security/cve-2022-31692

    受影响实体

    VMware Spring Security 是美国威睿(Vmware)公司的一套为基于 Spring 的应用程序提供的功能强大且高度可定制的身份验证和访问控制框架。广泛应用于基于 Spring 开发的应用程序。

    目前受影响的 Spring Security 版本:

    5.6.0 ≤ Spring Security ≤ 5.6.8

    5.7.0 ≤ Spring Security ≤ 5.7.4

    补丁


    解决方案

    图片

    如何检测组件版本


    方法一 


    Windows 系统:

    全盘搜索 spring-security-bom- ,如果存在 spring-security-bom-{version}.jar ,则用户可能受影响。


    Linux 系统:

    使用 find / -name ‘spring-security*’ 命令搜索,如果存在 spring-security-bom-{version}.jar 则用户可能受漏洞影响。


    方法二 


    为 Maven 目,可查看项目 pom.xml 中 spring-security-core 和 spring-security-web 的 version 字段值是否位于受影响版本。


    <dependencies>  <!-- ... other dependency elements ... --!>  <dependency>    <groupId>org.springframework.security</groupId>    <artifactId>spring-security-web</artifactId>    <version>5.6.9</version>  </dependency>  <dependency>    <groupId>org.springframework.security</groupId>    <artifactId>spring-security-core</artifactId>    <version>5.6.9</version>  </dependency></dependencies>

    如果 pom.xml 中没有写明 spring-security-core 和 spring-security-web 的版本号,说明使用了 Springboot 内置的 Spring Security 组件,可以在此链接中查询 Springboot 对应版本内置 Spring Security 的版本号。


    查询链接:https://github.com/spring-projects/spring-boot/releases

    图片

    官方修复建议

    当前官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。链接如下:

    https://spring.io/projects/spring-security


    打补丁/升级方法:

    升级 Springboot 至安全版本,或修改 pom.xml 中 spring-security-web 和 spring-security-core 的版本,强制使用安全版本的 Spring Security 依赖。

    图片

    临时修复建议

    该临时修复建议存在一定风险,建议用户可根据业务系统特性审慎选择采用临时修复方案:

    当 Spring Security ≥ 5.7.0 ,可使用 authorizeRequests().filterSecurityInterceptorOncePerRequest(false) 代替 authorizeHttpRequests().shouldFilterAllDispatcherTypes(true)

    当 Spring Security < 5.7.0 时 shouldFilterAllDispatcherTypes 方法不可用,可通过添加 ObjectPostProcessor 缓解此漏洞。

    最后保存并重启服务即可生效。修复后结果: