CVE-2022-22978|Spring Security 身份认证绕过漏洞处置SOP

图片

导读

Spring Security身份认证绕过漏洞(CVE-2022-22978),尽管这一漏洞的披露时间追溯到2022年,但因其严重性和普遍性,至今仍然被列为重点关注的必修漏洞。

本篇内容作为第1期·漏洞处置SOP征文活动的入选SOP之一,将详细剖析CVE-2022-22978漏洞,并提供实用的处置方法和标准作业程序(SOP)。

我们热忱欢迎各位安全专家、技术爱好者积极投稿,分享你们的漏洞处置经验或是更优化的SOP建议。通过这样的形式,推广征集漏洞处置SOP,且提供一套行之有效的解决方案。

在下文中,我们将详细介绍CVE-2022-22978漏洞处置标准作业程序(SOP)。希望这些内容能对大家在实际工作中提供切实的帮助。

> SOP基本信息 <

  • SOP名称:CVE-2022-22978|Spring Security RegexRequestMatcher 认证绕过漏洞处置标准作业程序(SOP)

  • 编写日期:2024-08-23

  • 修订日期:2024-08-24

  • 编写人员:lu(JAVA开发人员)

  • 修订记录:

    • 初始版本:创建SOP

> SOP的用途 <

该SOP旨在指导JAVA开发人员处置 Spring Security RegexRequestMatcher 认证绕过漏洞 (CVE-2022-22978) ,确保系统安全性和完整性,并按时提交给安全部门验证。

> SOP的目标用户技能要求 <

  • Spring Security 基础知识:了解 Spring Security 的基本概念和组件,尤其是与请求匹配和身份认证相关的部分。

  • 正则表达式:熟悉RegexRequestMatcher 使用正则表达式来匹配请求路径的语法和应用。

  • 漏洞分析和修复:了解如何识别和分析漏洞,并应用修复措施。能够跟踪和理解 Spring Security 的请求处理流程,以确定漏洞的具体位置和修复方法。

> 漏洞详细信息 <

  • 漏洞名称:Spring Security 身份认证绕过漏洞

  • CVE编号:CVE-2022-22978

  • 严重程度:严重

  • 漏洞描述:Spring Security是一个能够为基于Spring的应用程序提供认证、授权以及保护免受攻击的安全框架。它是Spring项目的一部分,可以非常容易地集成到Spring应用中,为Java应用提供全面的安全解决方案。

    当Spring Security使用RegexRequestMatcher进行权限配置时,由于RegexRequestMatcher正则表达式配置权限的特性,正则表达式中包含“.”时,未经身份验证攻击者可以通过构造恶意数据包绕过身份认证。
  • 影响范围:

    漏洞影响的 Spring Security 版本范围:
    • Spring Security 5.5.x < 5.5.7

    • Spring Security 5.6.x < 5.6.4

    • 以及较老的不再受支持的版本。

> 漏洞处置方案 <

官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,酌情升级至安全版本:

  • Spring Security 5.5.x:官方建议将版本升级至5.5.7或更高版本。

  • Spring Security 5.6.x:官方建议将版本升级至5.6.4或更高版本。

  • 其他受影响的Spring Security版本:同样建议升级到安全版本。

补丁下载和更新:用户可以通过GitHub下载和更新Spring Security到上述安全版本 。(https://github.com/spring-projects/spring-security/tags)

安全建议:在升级到安全版本之前,建议用户备份数据并进行充分测试,以确保升级过程的顺利进行和应用的稳定性。

参考链接:

  • https://www.huaweicloud.com/notice/2021/20220525183347168.html

  • https://spring.io/security/cve-2022-22978

*注意事项:

  • 在应用补丁或升级版本之前,请确保进行充分的备份。

  • 遵循官方提供的安装和配置指南进行操作。

  • 在生产环境中升级前,最好在测试环境中先进行测试。

  • 修复漏洞前进行充分测试,以确保系统稳定性和安全性。

  • 不同版本系列尽量升级到本系列版本无漏洞的版本,尽量不要版本跨度太大,避免出现一些不兼容情况。

> 详细修复步骤 <

  1. 使用开发工具打开受影响的工程

    1. 本文以idea为例

  2. 确定当前 Spring Security 版本

    图片

    1. 打开External Libraries查看相关依赖,本文以受影响的spring-security5.5.4版本为例:

  3. 修改pom文件升级spring-boot-starter-parent版本,spring-boot-starter-security则会引入相应版本

    图片

    1. 创建新分支用于漏洞修复

    2. 修改pom文件中spring-boot-starter-parent版本,本文以升级到spring-boot-starter-parent-2.7.0为例,spring-boot-starter-security则会引入5.7.1版本:

  4. 重新编译打包工程

    1. 编译打包命令

      mvn clean install
  5. 启动对应服务

    1. 启动命令

      java -jar  xxx.jar
  6. 验证修复效果:

    图片

    图片

    图片

    1. 优先在测试环境进行验证,当使用spring-security5.5.4版本时,访问测试接口http://localhost:8080/admin/1,结果需要认证,访问http://localhost:8080/admin/1%0a时,则可以绕过认证,证明漏洞存在。

    2. 将spring-security版本升级为5.7.1,访问http://localhost:8080/admin/1%0a时,页面会提示500,证明已无法通过恶意构造正则表达式来绕过认证。

    3. 测试环境验证结束,在生产环境进行升级时,建议用户备份数据,以确保升级过程的顺利进行和应用的稳定性,升级完成后访问系统相关功能进行测试,确保漏洞已被成功修复。

  7. 记录处置过程:

    1. 撰写漏洞处置报告,详细记录修补步骤、日期和结果。

  8. 提交报告:

    1. 将漏洞处置报告提交给安全部门,等待验证和确认。

- End -


第一期征文活动其它入选SOP

1. CVE-2019-14439|FasterXML jackson-databind 信息泄露漏洞处置标准作业程序(SOP)

作者:Jungle

2. CVE-2020-1938|Apache Tomcat 文件包含漏洞处置SOP

作者:SSS

3. CVE-2018-1273|Pivotal Spring Data Commons和Spring Data REST 安全漏洞处置SOP

作者:Jungle

4. CVE-2017-18349|FastJson 远程代码执行漏洞处置标准作业程序(SOP)

作者:Blue

我们将持续征集SOP,欢迎更多伙伴参与编写漏洞处置SOP,加入社区,共同锤炼安全金钥。

SOP作品征集活动持续进行中,欢迎联系运营同学报名:

注:可扫码添加「运营助手」报名咨询或获取本文公布的 5 篇入选SOP(PDF格式),每人限领 1 份。
 

扫码添加运营助手

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值