CVE-2024-38810: Spring Security Flaw Leaves Applications Open to Unauthorized Access
2024/08/20 SecurityOnline — Spring Security で、深刻度の高い脆弱性 CVE-2024-38810 が発見された。この脆弱性の影響を受けるアプリケーションにおいては、機密データへの不正アクセスが生じる可能性があるという。この脆弱性は、Spring Security のバージョン 6.3.0/6.3.1 に影響を及ぼす。

Spring Security のパワフルなメソッド・セキュリティ機能により、開発者は@PreAuthorize/@PostAuthorize などのアノテーションを使って、アプリケーション・メソッドへのアクセスを制御できる。ただし、対象となるオブジェクトが @AuthorizeReturnObject/@AuthorizationAdvisorProxyFactory/@Bean などでラップされている場合には、すべてのセキュリティ・アドバイスが正しく適用されるとは限らない。
この脆弱性は、@PreFilter/@PostFilter/@PreAuthorize/@PostAuthorize などの重要なセキュリティ・アノテーションが、それらのラップされたオブジェクトに対して、期待されるセキュリティ制限を実施できない可能性があることを意味している。その結果として、アプリケーションは不正アクセスやデータ漏洩の脆弱な状態に陥る。
この脆弱性は、Josh Cummings により報告されたものだ。
この脆弱性は、以下に示す、すべての条件を満たすアプリケーションだけに影響を及ぼす:
- 自動プロキシ作成に
AnnotationAwareAspectJAutoProxyCreatorを使用している。 - アプリケーション・コンテキストに、少なくとも1つの
FactoryBeanが存在する。 EnableMethodSecurityを使用してメソッドのセキュリティが有効化されている。AuthorizeReturnObject/AuthorizationAdvisorProxyFactoryにより対象オブジェクトがラップされている。- ラップされたオブジェクトに対して、
@PreFilter/@PostFilter/@PreAuthorize/@PostAuthorizeが使用されている。
影響を受ける Spring Security のバージョンを使用しているユーザーに推奨されるのは、バージョン 6.3.2 へと、ただちにアップグレードすることである。このアップデートにより、欠落していたアノテーション・チェックが修正され、セキュリティ・アドバイスの適切な実施が保証される。
Spring Security の、アノテーションを使った、アプリケーション・メソッドへのアクセスを制御という仕組みは、とても面白そうですね。ただし、いくつかの例外的なケースでは、その仕組が期待どおりに機能しないというバグがあったようです。ご利用のチームは、ご注意ください。よろしければ、Spring Security で検索も、ご利用ください。
You must be logged in to post a comment.