CVE-2024-38810:使用 @AuthorizeReturnObject 时缺少授权

| 2024 年 8 月 19 日 | CVE-2024-38810

描述

使用 @AuthorizeReturnObject 或 Spring Security 生成的 AuthorizationAdvisorProxyFactory @Bean 来包装对象的应用程序可能未应用所有安全建议。

当方法安全建议未应用时,这意味着像 @PreFilter@PreAuthorize 这样的注解可能不会对这些被包装的对象产生任何影响。

请注意,这*不*会影响使用 Spring Security 方法安全建议的任何 @Bean

要使此问题影响应用程序,必须满足以下所有条件:

  • 必须使用 AnnotationAwareAspectJAutoProxyCreator 作为自动代理创建器来创建代理;这可以通过应用程序声明性地完成,或通过 @EnableAspectJAutoProxy 启用,或通过 Spring Boot 使用 spring-aspects 或使用 spring-aspects 的 starter 来启用。
  • 应用程序上下文中必须至少存在一个 FactoryBean
  • 应用程序必须使用 @EnableMethodSecurity 启用方法安全。
  • 应用程序必须使用 @AuthorizeReturnObject 注解或 Spring Security 生成的 AuthorizationAdvisorProxyFactory @Bean 来包装对象。
  • 应用程序必须在这些被包装的对象上使用 @PreFilter@PostFilter@PreAuthorize@PostAuthorize

如果所有这些条件都为真,则某些方法安全建议可能不会应用于由 @AuthorizeReturnObjectAuthorizationAdvisorProxyFactory 包装的对象。

满足以下任何条件的应用程序*不受*影响:

  • 应用程序未在任何被包装的对象上使用 @PreFilter@PostFilter@PreAuthorize@PostAuthorize
  • 应用程序未使用 @EnableMethodSecurity 启用方法安全。
  • 应用程序未使用 @AuthorizeReturnObject 或 Spring Security 生成的 AuthorizationAdvisorProxyFactory @Bean
  • 应用程序没有任何 FactoryBean
  • 应用程序未使用 AnnotationAwareAspectJAutoProxyCreator 进行自动代理创建。

受影响的 Spring 产品和版本

这影响以下 Spring Security 版本:

  • 6.3.0 和 6.3.1

缓解措施

受影响版本的用户应升级到相应的修复版本。

受影响版本 修复版本 可用性
6.3.x 6.3.2 OSS

无需采取其他缓解措施。

致谢

此问题由 Josh Cummings 负责任地报告。

参考

历史记录

  • 2024-08-19 - 初次报告发布

领先一步

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部