Spring Securityの2つの深刻な脆弱性 CVE-2025-22223/22228 が FIX:認証バイパスの可能性

Spring Security Updates Address Authorization Bypass and Password Length Vulnerabilities

2025/03/20 SecurityOnline — Java ベース・アプリで広く使用されるフレームワーク Spring が公開したのは、認証バイパスと脆弱なパスワード強制につながる、2つの深刻なセキュリティ脆弱性に関する情報である。脆弱性 CVE-2025-22223/CVE-2025-22228 は、Spring Security の複数バージョンに影響を及ぼすものであり、開発者による即時の対応と、リスクの軽減を必要とするものだ。

CVE-2025-22223

Method Security Annotations における認証バイパス

Spring Security のメソッド・レベルのセキュリティは、きめ細かなアクセス制御を提供するが、その実装に存在する欠陥により、特定の条件下で権限のないユーザーが、制限のあるメソッドを呼び出す可能性が生じる。このアドバイザリには、「Spring Security は、パラメータ化されたタイプ/メソッドにより、正しいメソッド・セキュリティ・アノテーションを見つけられない場合がある。それにより、認証バイパスが発生する可能性がある」と記されている。

この脆弱性は、次の基準を満たすアプリケーションに対して、特に影響を及ぼす:

  • @EnableMethodSecurity を用いてメソッド・セキュリティを強制する。
  • パラメータ化されたタイプ/インターフェイスまたは、オーバーライドされたメソッドにメソッド上でセキュリティ・アノテーションを定義するが、ターゲット・メソッド上でダイレクトに定義していない。

運用中のアプリケーションが、これらの条件に一致する場合には、攻撃者は適切な承認を必要とすることなく、制限されているはずのメソッドを呼び出せる。Spring の開発者は、「すべてのメソッド・セキュリティ・アノテーションが、ターゲット・メソッドにアタッチされていることの確認、もしくは、この問題を修正している Spring Security 6.4.4 へのアップグレードにより、この問題を軽減できる」と述べている。

CVE-2025-22228

BCryptPasswordEncoder における脆弱なパスワード強制

2つ目の脆弱性 CVE-2025-22228 は、Spring Security の一般的なパスワード・ハッシュ関数である、BCryptPasswordEncoder に影響するものだ。この問題により、最初の 72 文字が予想されるパスワードと一致している限り、72 文字を超えるパスワードであっても認証が成功してしまう。

このアドバイザリには、「BCryptPasswordEncoder.matches (CharSequence, String) は、最初の 72 文字が同じである限り、72 文字を超えるパスワードに対して、誤って true を返してしまう」と記されている。

この不適切な動作により、パスワード切り捨て攻撃が可能になる。この問題を悪用する攻撃者は、異なるパスワード長を悪用して、認証をバイパスする機会を得るため、セキュリティ・リスクが発生する恐れがある。

影響を受けるバージョンと緩和手順

これらの脆弱性は、以下の Spring Security バージョンに影響を及ぼす:

  • Spring Security 6.4.0 – 6.4.3 (CVE-2025-22223)
  • Spring Security 5.7.0 – 6.4.3 (CVE-2025-22228)

Spring が開発者たちに強く推奨するのは、パッチ適用したバージョンへの速やかなアップグレードにより、これらの脆弱性を緩和することだ。

  • 6.4.4 (OSS ユーザー向け)
  • 古いバージョンのエンタープライズ・サポート・パッチ

速やかなアップグレードが不可能な場合には、以下の手順が推奨される:

  • CVE-2025-22223 の場合:継承されたタイプまたは、パラメータ化されたタイプに依存することなく、ターゲット・メソッド上に、セキュリティ・アノテーションが明示的に配置されていることを確認する。
  • CVE-2025-22228 の場合:アプリケーション・レベルで、パスワードの長さに関するポリシーを適用し、72 文字を超えるパスワードを拒否する。

このブログでは、今年に入って初めての、Spring 製品の脆弱性の記事です。Spring Security は、ベンダのサイトによると、「Spring ベースのアプリケーションのセキュリティ対策において、事実上の標準となっているツール」とのことなので、ご利用のチームも多いかと思います。アップデートまたは緩和策を、ご確認ください。また、昨年は、多くの Spring 製品に脆弱性が報告されています。よろしければ、Spring Security で検索も、ご利用ください。