AsyncHttpClient の脆弱性 CVE-2024-53990 (CVSS 9.2) が FIX:誤った Cookie 処理の発生

CVE-2024-53990 (CVSS 9.2): AsyncHttpClient Vulnerability Puts Java Applications at Risk

2024/12/05 SecurityOnline — Java ライブラリである AsyncHttpClient (AHC) に、深刻な脆弱性 CVE-2024-53990 (CVSS:9.2) が発見された。 この、非同期 HTTP リクエスト送信で広く利用されるライブラリの脆弱性により、攻撃者はユーザー・セッションの悪用を達成し、機密情報への不正アクセスの可能性を手にする。

この脆弱性は、ライブラリの CookieStore が、Cookie を処理する方法に起因する。AsyncHttpClient プロジェクトのセキュリティ・アドバイザリには、「自動的に有効化され、自己管理される CookieStore (別名 Cookie jar) は、Cookie jar 内の同じ名前を持つ Cookie により、明示的に定義された Cookie を自動的に置き換えてしまう」と記されている。

簡単に言うと、AHC を使用するアプリケーションが、特定の Cookie を使用して HTTP リクエストを行うと、CookieStore 内の別の Cookie と交換される可能性が生じる。その交換は、2つの Cookie が同じ名前を保つ場合でも、行われてしまう。この動作は、マルチ・ユーザー環境において、きわめて危険になる。なぜなら、あるユーザーの Cookie が、別のユーザーのリクエストに誤って使用される可能性があるからだ。

ユーザーの認証と承認の処理に AHC を利用するアプリケーションにおいて、特にサードパーティ・サービスとインタラクトするアプリケーションにおいて、この脆弱性は深刻なリスクをもたらす。プロジェクトのアドバイザリで説明されているように、「サードパーティ・サービスがレスポンスに対して Cookie を設定して応答すると、実質的に CookieStore により、ほぼ全ての後続リクエストが中断されてしまう。このリクエストに対する拒否が期待されるが、別のユーザーの情報が公開される可能性すら発生する。

この脆弱性が影響を及ぼす範囲は、AHC バージョン 3.0.0 となる。

この脆弱性を発見したのは、セキュリティ研究者である Chris Earle であり、彼により報告されたという。

アプリケーションで AHC を使用している開発者および組織に対して、強く推奨されるのは、パッチを適用したバージョン 3.0.1 へと、ただちにアップグレードすることだ。