Spring Security の脆弱性 CVE-2024-22234 が FIX:直ちにアップデートを!

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 のユーザーには、以下の対策が推奨される:

  1. 迅速なアップグレード:この脆弱性に対処した、バージョン 6.1.7/6.2.2 へとアップデートする。
  2. 実装の見直し:パッチが適用されたバージョンであっても、コード内での isFullyAuthenticated() のダイレクトな呼び出しを再確認し、潜在的な NULL 値を注意深く扱う。