Spring Security 安全公告

CVE-2023-20862:注销时未正确保存空的安全上下文

| 2023年4月17日 | CVE-2023-20862

描述

在 Spring Security 中,5.7.x 版本(低于 5.7.8)、5.8.x 版本(低于 5.8.3)和 6.0.x 版本(低于 6.0.3)的注销支持在使用序列化版本时无法正确清除安全上下文。此外,无法显式地将空的安全上下文保存到 HttpSessionSecurityContextRepository。此漏洞可能导致用户在执行注销后仍保持身份验证状态。

具体来说,当以下任何条件为真时,应用程序容易受到攻击

  • 您正在使用 SecurityContextHolderFilter 或 requireExplicitSave(true),并且您正在使用 Spring Security 的注销支持以及序列化的会话(例如 Spring Session)和 invalidateHttpSession(false)
  • 您正在通过将空的安全上下文保存到 HttpSessionSecurityContextRepository 手动注销用户
  • 您有一个不依赖于 HttpSession 的自定义 SecurityContextRepository

当以下任何条件为真时,应用程序不受此漏洞影响

  • 您仍在使用已弃用的 SecurityContextPersistenceFilter 或 requireExplicitSave(false)
  • 您正在使用 Spring Security 的注销支持以及内存中的会话。
  • 您没有将空的安全上下文保存到 HttpSessionSecurityContextRepository

受影响的 Spring 产品和版本

Spring Security

  • 6.0.0 至 6.0.2
  • 5.8.0 至 5.8.2
  • 5.7.0 至 5.7.7

缓解措施

受影响版本的使用者应应用以下缓解措施。5.7.x 用户应升级到 5.7.8。5.8.x 用户应升级到 5.8.3。6.0.x 用户应升级到 6.0.3。无需执行其他步骤。已修复此问题的版本包括

Spring Security

  • 5.7.8
  • 5.8.3
  • 6.0.3

致谢

此问题由保时捷信息技术公司的 Daniel Furtlehner 发现并负责任地报告。

参考资料

领先一步

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

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

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

查看全部