CVE-2021-22112:在单个请求中多次更改 SecurityContext 可能导致保存失败

| 2021年2月19日 | CVE-2021-22112

描述

Spring Security 版本 5.4.0 至 5.4.3、5.3.0.RELEASE 至 5.3.8.RELEASE、5.2.0.RELEASE 至 5.2.8.RELEASE 以及更旧的不受支持版本,如果在单个请求中多次更改 SecurityContext,可能无法保存。如果开发人员在满足以下两个条件的情况下,在单个请求中两次更改 SecurityContext,则 SecurityContext 可能无法保存到 HttpSession:首先,开发人员必须在 HttpResponse 提交之前更改 SecurityContext,然后 HttpResponse 必须在 SecurityContextPersistenceFilter 完成之前提交。然后,开发人员必须在 SecurityContextPersistenceFilter 完成之前再次尝试更改 SecurityContext。恶意用户无法导致此错误发生(它必须被编程)。但是,如果应用程序的意图是只允许用户在应用程序的一小部分中以提升的权限运行,那么这个错误可以被利用将这些权限扩展到应用程序的其余部分。

受影响的 Spring 产品和版本

  • Spring Security
    • 5.4.0 至 5.4.3
    • 5.3.0.RELEASE 至 5.3.8.RELEASE
    • 5.2.0.RELEASE 至 5.2.8.RELEASE

缓解措施

受影响版本的用户应采取以下缓解措施:5.4.x 用户应升级到 5.4.4,5.3.x 用户应升级到 5.3.9.RELEASE,5.2.x 用户应升级到 5.2.9.RELEASE。更旧的版本应升级到受支持的分支。无需其他缓解步骤。已修复此问题的版本包括

  • Spring Security
    • 5.4.4
    • 5.3.9.RELEASE
    • 5.2.9.RELEASE

致谢

此问题由 CloudBees, Inc. 的 Daniel Beck、Jeff Thompson、Jesse Glick 和 Wadeck Follonier 发现并负责任地报告。

参考资料

历史

  • 2021-02-19:更正了已修复版本
  • 2021-02-19:发布了初始漏洞报告。

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有