Spring Framework Security Flaws Allow Authorization Bypass and Annotation Detection Issues
2025/09/16 gbhackers — 2025年9月15日に、Spring Framework および Spring Security ライブラリに存在する、深刻度が中程度の2件の脆弱性が公開された。どちらの脆弱性も、Spring Security のメソッド・セキュリティ機能で使用されるアノテーション検出メカニズムに関連するものであり、パラメータ化された型や無制限のジェネリック・スーパークラスを利用するアプリケーションで、認証バイパスを引き起こす可能性がある。

脆弱なバージョンのユーザーにとって必要なことは、修正リリースへのアップグレードもしくは、推奨される緩和策の速やかな適用により、不正アクセスを防止することである。
脆弱性の詳細
Spring Security の @EnableMethodSecurity 機能は、アクセス制御を強化するために、@PreAuthorize などのメソッド・レベルのアノテーションを検出する。
| CVE Identifier | Severity | Publication Date |
| CVE-2025-41248 | Medium | September 15, 2025 |
| CVE-2025-41249 | Medium | September 15, 2025 |
スーパークラスまたはインターフェイスが、無制限ジェネリックを使用する特定の型階層において、このフレームワークには、継承メソッドのアノテーションを正しく解決できない可能性がある。
適切な権限チェックを行わずに、セキュリティ保護されたメソッドを呼び出す攻撃者は、この脆弱性を悪用し、認証を回避する可能性を手にする。
1つ目の脆弱性 CVE-2025-41248 が影響を及ぼす範囲は、Spring Security のバージョン 6.4.0 ~ 6.4.9/6.5.0 ~ 6.5.3 である。この問題は、パラメータ化された型のメソッド・セキュリティ・アノテーションに関係する。
2つ目の脆弱性 CVE-2025-41249 が影響を及ぼす範囲は、Spring Framework のバージョン 5.3.0〜5.3.44/6.1.0〜6.1.22/6.2.0〜6.2.10、および、サポート終了となった古いリリースである。
ジェネリック・スーパークラスまたはインターフェイスで、Spring Security のメソッド・レベル・アノテーションを使用している組織は、不正なメソッド呼び出しの危険に直面している。
@EnableMethodSecurity を使用しないアプリケーション、または、ジェネリック型にセキュリティ・アノテーションを適用しないアプリケーションは、影響を受けない。
脆弱性 CVE-2025-41248 に対処するためには、Spring Security 6.4.10/6.5.4 にアップグレードする必要がある。また、CVE-2025-41249 については、Spring Framework 5.3.45/6.1.23/6.2.11 が修正バージョンである。
アップグレードの他に、追加の緩和策は必要ない。迅速なアップグレードが不可能な場合には、すべてのセキュア・メソッドをジェネリック・スーパークラスから継承するのではなく、ターゲット・クラスでダイレクトに宣言することで、CVE-2025-41248 を回避する必要がある。
さらに開発チームは、コードベースで @EnableMethodSecurity およびジェネリック型に対する、メソッド・レベルのアノテーションの使用状況を監査する必要がある。また、CI (Continuous Integration) パイプラインには、脆弱な Spring リリースにフラグ付けするための、依存関係の自動スキャンを取り込むことが可能だ。
推奨される修正バージョンに更新することで、正しいアノテーション解決が復元され、セキュリティバイパスを防止できる。それに加えて、チームにとって必要なことは、アクセス制御テスト・スイートの確認と、継承されたメソッドが適切にカバーされていることの確認である。
これらの脆弱性は、Spring Security のメソッド・セキュリティに関わるアノテーション検出処理に起因します。特に、パラメータ化された型や無制限ジェネリックを使ったスーパークラスで、アノテーションを正しく解決できないことが問題となっています。その結果として、アクセス制御のチェックが抜け落ち、権限を持たない攻撃者に対して、保護されたメソッドの呼び出しを許す可能性が生じます。本来は、認証で守られるべき部分が、型階層の扱いの不備により、バイパスされてしまう構造に原因があると、この記事は指摘しています。ご利用のチームは、ご注意ください。よろしければ、Spring Security で検索も、ご参照ください。
You must be logged in to post a comment.