Spring Security Vulnerability (CVE-2024-22234): Mitigating Broken Access Control
2024/02/20 SecurityOnline — 先日に公開された Spring Security の脆弱性 CVE-2024-22234 (CVSS:7.4) は、影響を受ける Java Web アプリケーション内において、不正アクセスを生じる可能性があるものだ。Spring Security を認証/認可に利用している場合には、潜在的なリスクに対処するために、緩和策を優先的に実施する必要がある。

脆弱性の詳細
この脆弱性は、Spring Security のバージョン 6.1.7 未満の 6.1.x および、6.2.2 未満の 6.2.x の、AuthenticationTrustResolver.isFullyAuthenticated(Authentication) メソッドに起因する。特定の条件下で、このメソッドに NULL 認証値を渡すと、認証に成功したことを示す、誤った True レスポンスが生成される可能性がある。
ただし、以下のような条件にあるアプリケーションは、CVE-2024-22234 に対して脆弱ではない:
- アプリケーションが、AuthenticationTrustResolver.isFullyAuthenticated (Authentication) を直接使用しない。
- アプリケーションが、AuthenticationTrustResolver.isFullyAuthenticated に null を渡さない。
- アプリケーションが、メソッド・セキュリティまたは HTTP リクエスト・セキュリティによってのみ 、isFullyAuthenticated を使用する。
脆弱性の潜在的な影響
この脆弱性が悪用されていると、認証されていない脅威アクターから、以下のような攻撃/損害を受ける可能性がある:
- データ漏えい:顧客情報/金融取引/企業秘密などの、機密情報への不正アクセス。
- 制限を超えたリソースへのアクセス:システム内の権限/設定などの、制限された領域が改ざんされる。
- 評判へのダメージ:攻撃が成功すると、アプリケーションや企業全体に対する信頼が損なわれる可能性がある。
自分自身のが危険性を確認するには
アプリケーションが AuthenticationTrustResolver.isFullyAuthenticated(Authentication) メソッドを直接に使用し、特定の状況下で null 値を渡すことを許可している場合には、そのアプリケーションが脆弱である可能性がある。
アプリケーションの保護
Spring Security のユーザーには、以下の対策が推奨される:
- 迅速なアップグレード:この脆弱性に対処した、バージョン 6.1.7/6.2.2 へとアップデートする。
- 実装の見直し:パッチが適用されたバージョンであっても、コード内での isFullyAuthenticated() のダイレクトな呼び出しを再確認し、潜在的な NULL 値を注意深く扱う。
Spring Security について調べてみたら、Qiita に「Spring ベースのアプリケーションに対して、認証 (BASIC認証/OpenID認証など)や、認可 (権限によるアクセス許可/OAuth 2.0など) などを提供し、その他の多数のセキュリティ対策を実現するフレームワーク」と解説されていました。おそらく、影響を受けるアプリケーションが、たくさんあるのだろうと推測できます。よろしければ、Spring で検索も、ご利用ください。
You must be logged in to post a comment.