Apache MINA の RCE 脆弱性 CVE-2024-52046 がFIX:CVSS 値は 10.0

CVE-2024-52046 (CVSS 10): Critical Apache MINA Flaw Could Allow Remote Code Execution

2024/12/25 SecurityOnline — 人気のネットワーク・アプリケーション・フレームワーク Apache MINA に、深刻な脆弱性 CVE-2024-52046 (CVSS 10.0) が発見された。この脆弱性を悪用する攻撃者は、脆弱なシステム上で任意のコード実行の可能性を得るため、早急なパッチ適用が最優先事項となる。

Apache MINA は、高性能で拡張性の高いネットワーク・アプリケーションの構築において、広く使用される TCP/IP や UDP/IP などのトランスポート上のネットワーク・プログラミングを簡素化する、抽象的なイベント駆動型非同期 API として知られている。その MINA の ObjectSerializationDecoder コンポーネントにおけるデシリアライゼーションの処理に、重要なセキュリティ・チェックの欠落があることが判明した。

ObjectSerializationDecoder は、シリアライズされたデータを処理するために Java のネイティブなデシリアライゼーションを利用している。しかし、適切な安全対策が施されていない場合において、特別に細工した悪意のシリアライズ・データを送信する攻撃者が、ObjectSerializationDecoder による処理に到達すると、リモート・コード実行 (RCE) を誘発する可能性が生じる。

脆弱性 CVE-2024-52046 は、Apache MINA のバージョン 2.0.0〜2.0.26/2.1.0〜2.1.9/2.2.0〜2.2.3 に影響するものだが、MINA を使用している、すべてのアプリケーションに存在するというわけではない。

このリスクは、アプリケーションが IoBuffer#getObject() メソッドを使用する場合に発生する。ObjectSerializationCodecFactory クラスを使用する ProtocolCodecFilter インスタンスが、フィルタ・チェーンに追加される際に、このメソッドが呼び出される可能性がある。したがって、これらの特定のクラスやメソッドに依存するアプリケーションの場合は、潜在的な危険にさらされている可能性があるため、ただちに対策を講じる必要がある。

すでに Apache MINAチームは、一連の製品に対するパッチ適用版 (2.0.272.1.102.2.4) をリリースし、これらの脆弱性を修正している。

ただし、アップグレードするだけでは不十分である。更新されたバージョンでは、重要なセキュリティ強化が導入されているが、開発者に残される必要な対策として、ObjectSerializationDecoder がデシリアライズを許可するクラスの明示的な定義がある。それを実現するために、次の3つの新しいメソッドが提供されている。

  • accept(ClassNameMatcher classNameMatcher)
  • accept(Pattern pattern)
  • accept(String… patterns)

デコーダーに対する明示的な許可がない限り、デフォルトでは “deny all” の原則に基づいて、すべてのクラスが拒否される。それにより、信頼できない、あるいは、潜在的な悪意を持つ、オブジェクトのデシリアライゼーションを防止する、重要な制御レイヤーが追加される。

なお、FtpServer/SSHd/Vysper のサブ・プロジェクトは、この脆弱性の影響を受けないと、Apache MINA チームは述べている