JVN iPediaは、MongoDB Inc.のMongoDB Java Driverにおいて、リアクティブなクライアント側暗号化処理のキャンセル競合に起因する、解放済みメモリの使用(Use-after-free)の脆弱性を公表している。悪用された場合、アプリケーションの異常終了によるサービス運用妨害(DoS)につながる可能性がある。
脆弱性の詳細
本脆弱性は、MongoDB Java Driverのリアクティブなクライアント側暗号化(CSFLE)コンポーネントにおいて、処理のキャンセルに関する競合状態が発生し、解放済みメモリを使用する可能性があるというものだ。MongoDBのセキュリティ情報では、攻撃者がこの問題を利用してアプリケーションを停止させ、サービス運用妨害を引き起こす可能性があると説明されている。
対象となるのは、Java Driverのリアクティブなクライアント側暗号化機能を利用する構成である。通常のデータベース接続だけでなく、依存関係として組み込まれた暗号化関連パッケージの利用状況も確認する必要がある。本件はJVNDB-2026-034178として登録されている。CVE番号、CVSSスコア、攻撃条件などの詳細は、参照記事で明確に確認できる情報に基づいて管理し、確認できない項目は推測で補わないことが重要である。
影響を受ける製品・バージョン
- MongoDB Inc. MongoDB Java Driver 4.2.0以降、5.11.1未満
- org.mongodb:mongodb-crypt Mavenパッケージ 1.4.0以降、5.11.1未満
修正版はMongoDB Java Driver 5.11.1である。実際の影響は、利用しているドライバの種類、バージョン、リアクティブなクライアント側暗号化機能の使用有無によって異なる。
推奨される対策
- アップデート適用:MongoDB Java Driverを5.11.1以降へ更新する。Maven、Gradleなどのビルド設定で直接指定している依存関係だけでなく、推移的依存関係として組み込まれているmongodb-cryptパッケージも確認する。
- 影響範囲の特定:MongoDB Java Driverおよびorg.mongodb:mongodb-cryptの利用箇所を、MavenやGradleの依存関係定義、ロックファイル、生成済み成果物、SBOMなどから洗い出す。特にリアクティブなクライアント側暗号化を使用するアプリケーションを優先して確認する。
- 暫定的な回避:直ちに更新できない場合は、リアクティブなクライアント側暗号化機能を使用している処理のキャンセル操作や外部から誘発可能な処理経路を一時的に制限する。ただし、参照記事で公式の回避策が示されていない場合、これらは暫定的なリスク低減策にとどまり、詳細は現時点で不明である。
- 監視とログ確認:対象アプリケーションの異常終了、再起動、暗号化処理のキャンセル増加、予期しない例外や接続障害を監視する。問題が発生した場合に調査できるよう、アプリケーションログ、コンテナやプロセスの再起動履歴、依存関係のバージョン情報を保全する。
日本の中小企業が今すぐ取るべき行動
- 最優先:自社システムでMongoDB Java Driverまたはorg.mongodb:mongodb-cryptを利用しているか、アプリケーションの依存関係定義と配布物から確認する。
- 次に:該当する場合は、利用バージョンがMongoDB Java Driver 5.11.1未満、またはmongodb-crypt 5.11.1未満に該当するかを確認し、リアクティブなクライアント側暗号化の利用有無を特定する。
- 更新計画:検証環境で5.11.1以降へ更新し、データベース接続、認証、暗号化・復号、リアクティブ処理のキャンセル、主要業務機能を確認した上で本番へ反映する。
- 委託先連携:開発会社や保守ベンダーがいる場合は、対象ライブラリの利用有無とバージョン、クライアント側暗号化の利用状況、更新可否、検証内容、反映予定日の提示を依頼する。
- 再発防止:依存ライブラリの一覧を継続的に管理し、MongoDB Java Driverなどの外部コンポーネントについて、セキュリティ更新を定期的に確認・適用する手順を文書化する。
CSRIからの現場アドバイス
本件では、MongoDB Java Driverを使っているかどうかだけでなく、リアクティブなクライアント側暗号化機能と、その依存パッケージのバージョンを確認することが重要だ。依存関係の一覧に直接表示されない推移的依存関係が影響を受ける場合もあるため、ビルド時に解決された最終的な依存関係を確認する必要がある。
Use-after-freeは、処理が終了して解放されたメモリを別の処理が誤って参照する不具合である。本件では、リアクティブな暗号化処理のキャンセルと内部リソースの解放が競合することで、アプリケーションの異常終了を招く可能性がある。利用環境や攻撃成立条件の詳細は現時点で不明な部分があるため、公開範囲だけを根拠に安全と判断せず、対象バージョンを使用している場合は更新を優先することが望ましい。
まず、MavenやGradleの依存関係レポートからMongoDB Java Driverとmongodb-cryptの実バージョンを確認する。次に、クライアント側暗号化およびリアクティブ処理の利用状況を担当者またはベンダーに確認し、5.11.1以降への更新を検証する。更新までの間は、異常終了や再起動、暗号化処理のエラーが発生していないかをログで点検する。