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 社群所有即將舉行的活動。

檢視全部