Spring Security Vulnerability Exposes Valid Usernames to Attackers
2025/04/25 gbhackers — Spring Security で発見されたセキュリティ脆弱性 CVE-2025-22234 により、広く使用されているフレームワークの深刻な弱点が露呈した。この脆弱性は spring-security-crypto パッケージの複数のバージョンに影響するものであり、ログイン応答時間の顕著な差を分析する攻撃者が、有効なユーザー名を判別できるようになるため、タイミング攻撃の攻撃経路となると、HeroDevs のレポートが指摘している。

Spring Security は、大半のエンタープライズ・アプリケーションの基盤となる Java フレームワークであり、認証/認可などの、さまざまなセキュリティ対策を実現している。このフレームワークは、Spring エコシステムと緊密に統合されており、その柔軟性と堅牢なコンフィグ・オプションが高く評価されている。
しかし、今回の最新の脆弱性は、これらの保護機能を損なうものであり、パフォーマンスとセキュリティの微妙なバランスを浮き彫りにしている。
CVE-2025-22234:脆弱性の詳細
この問題のコアは、spring-security-crypto パッケージに存在する、別の脆弱性 CVE-2025-22228 を修正するために設計された、最近のパッチに起因している。残念なことに、このアップデートにより、DaoAuthenticationProvider におけるタイミング攻撃に対する緩和策が、想定外のレベルで弱体化してしまった。
具体的に言うと、BCrypt パスワード・エンコーダーを使用する場合において、72 文字を超えるパスワードを取り込んだリクエストに対しては、エンコーダーは例外をスローする。
このシステム動作の違いにより、攻撃者は認証プロセスの所要時間を測定し、対象となるユーザー名がシステム内に存在するかどうかを推測できるという。
| CVE | Product | Affected Versions | Fixed In | Patch Status |
| CVE-2025-22234 | Spring Security | 5.7.16, 5.8.18, 6.0.16, 6.1.14, 6.2.10, 6.3.8, 6.4.4 | NES v5.7.18, v5.8.21 | Patch Available |
これまでの Spring Security では、ユーザー名の有効性に関わらず、常にパスワード・チェックが実行されていた。この戦略により、ログイン・レスポンス時間の一貫性が確保され、有効なユーザー名と無効なユーザー名の区別を、攻撃者に許さない仕組みが構成されていた。
しかし、前述の新しい動作により、検知し得る差異が生じ、情報漏洩のリスクが高まっている。
技術的な影響
- 影響を受けるバージョン: DaoAuthenticationProvider と BCryptPasswordEncoder を使用する、Spring Security のバージョン 5.7.16/5.8.18/6.0.16/6.1.14/6.2.10/6.3.8/6.4.4。
. - 攻撃シナリオ:さまざまなユーザー名でログイン試行を送信する攻撃者は、レスポンス時間の測定を可能にする。このレスポンス時間が速い場合には、ユーザー名が無効であることが示され、また、遅い場合にはユーザー名が有効であることが示されるため、ユーザー名の列挙が容易になる。
. - 修正:すでに Never-Ending Support (NES) のリリース v5.7.18/v5.8.21 により、この脆弱性は修正されている。ユーザーに対して強く推奨されるのは、速やかなアップデートである。
最新のパッチ適用済み Spring Security バージョンへと、速やかにアップグレードすることが最善の防御策となる。また、開発者は、ユーザー名の有効性やパスワードの長さに関わらず、一貫したレスポンス時間を確保するために、システムをテストする必要がある。
先月に修正された脆弱性 CVE-2025-22228 が原因で、新たな脆弱性 CVE-2025-22234 が発生したとのことです。ご利用のチームは、十分にご注意ください。なお、オリジナルの脆弱性 CVE-2025-22228 については、2025/03/20 の「Spring Securityの2つの深刻な脆弱性 CVE-2025-22223/22228 が FIX:認証バイパスの可能性」で詳しく触れています。よろしければ、Spring Security で検索と併せて、ご参照ください。
You must be logged in to post a comment.