CVE-2023-20859:令牌吊销失败导致敏感信息插入日志

中等 | 2023 年 3 月 20 日 | CVE-2023-20859

描述

在 Spring Vault 3.0.2 之前的 3.0.x 版本、2.3.3 之前的 2.3.x 版本以及更旧的版本中,当应用程序尝试吊销 Vault 批处理令牌时,应用程序容易受到将敏感信息插入日志文件的攻击。

具体来说,当以下所有条件都为真时,应用程序是脆弱的:

  • 身份验证机制创建批处理令牌(Batch tokens)。
  • 在仅使用命令式编程的场景下使用 LifecycleAwareSessionManager
  • 应用程序或应用程序关机钩子调用了 LifecycleAwareSessionManager.destroy()
  • LifecycleAwareSessionManagerorg.springframework.vault.authentication 的日志级别至少设置为 WARN 或更详细的日志级别。
  • 令牌吊销失败,因为出现以下情况之一:
    • Vault 返回错误响应,表示批处理令牌无法吊销。
    • 发生 I/O 错误。

如果以下任一条件为真,则应用程序不脆弱:

  • 应用程序在混合响应式/命令式或仅响应式编程的场景下使用 ReactiveSessionManager
  • 应用程序或应用程序关机钩子从不调用 LifecycleAwareSessionManager.destroy()
  • LifecycleAwareSessionManagerorg.springframework.vault.authentication 的日志级别设置为 ERROR 或更高,例如 OFF
  • 身份验证机制创建服务令牌(Service tokens)。

受影响的 Spring 产品和版本

  • Spring Vault
    • 3.0.0 到 3.0.1
    • 2.3.0 到 2.3.2 及更旧版本
  • Spring Cloud Vault
    • 4.0.0
    • 3.1.0 到 3.1.2 及更旧版本
  • Spring Cloud Config
    • 4.0.0 到 4.0.1
    • 3.1.0 到 3.1.6 及更旧版本

缓解措施

受影响版本用户应采取以下缓解措施。

  • Spring Vault 3.0.x 用户应升级到 3.0.2。当通过传递依赖使用 Spring Vault 时,请将 spring-vault-core 的依赖版本锁定到 3.0.2
  • Spring Vault 2.3.x 用户应升级到 2.3.3。当通过传递依赖使用 Spring Vault 时,请将 spring-vault-core 的依赖版本锁定到 2.3.3
  • 所有其他用户应使用服务令牌或将 org.springframework.vault.authentication.LifecycleAwareSessionManager 日志记录器的日志级别提高到至少 ERROR

无需采取其他步骤。

已修复此问题的版本包括

  • Spring Vault
    • 3.0.2
    • 2.3.3

致谢

此问题由 Martin Kiesel 识别并负责任地报告。

参考资料

历史记录

  • 2023-03-20:首次发布漏洞报告。

领先一步

VMware 提供培训和认证,助您加速发展。

了解更多

获取支持

Tanzu Spring 通过一次简单的订阅即可为 OpenJDK™、Spring 和 Apache Tomcat® 提供支持和二进制文件。

了解更多

近期活动

查看 Spring 社区的所有近期活动。

查看全部