
2025/12/29 6:03
**「MongoBleed」について簡単に解説**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
改善された概要
MongoBleed(CVE‑2025‑14847)は、認証の有無に関わらずインターネットに公開されている任意の MongoDB サーバーから機密データを読み取ることができる深刻なヒープリード脆弱性です。このバグは zlib のメッセージ圧縮処理に存在し、攻撃者は
uncompressedSize フィールドを膨張させた圧縮済み OP_MSG を送信することで MongoDB に大きなバッファを確保させ、その後初期化されていないヒープメモリを読み取らせます。正しいヌル終端が欠如した不正な BSON がデシリアライズ時にペイロードの先頭を越えてオーバーリードし、パスワード、API キー、セッショントークン、IP アドレス、Docker パス、およびその他の機密情報などの秘密が漏洩します。
この脆弱性は PR 1152(2017年5月マージ)により導入され、2025年12月17日に単一コミット(ハッシュ 505b660a…)で修正されました。MongoDB は 2025年12月19日に CVE‑2025‑14847 を公開し、同年12月22日にパッチ済みバイナリをリリースし、12月24日までにすべての Atlas クラウドインスタンスが保護されると発表しました。約 213,000 件の公開アクセス可能な MongoDB インスタンスが依然としてリスクにさらされています。
脆弱なリリース:
- MongoDB 3.6、4.0、4.2(すべて EOL) – 該当。
- 8.0.17 以降のバージョンは 2025年12月19日時点で修正済みです。
緩和策:
- パッチ適用済みバージョン(≥ 8.0.17)へアップグレードする。
- クライアント接続を受け付けるすべてのネットワークインターフェースで zlib 圧縮を無効にする。
即時修正が不可欠です。パッチ適用または再構成を怠ると、広範なデータ漏洩につながります。この事件は業界全体での迅速なパッチ適用と堅牢な公開制御の必要性を強調しています。
本文
MongoBleed (CVE‑2025‑14847)
2017年頃からほぼすべての MongoDB リリースに影響を与える、最近公表された脆弱性です。
1️⃣ 何が問題なのか?
- 対象箇所:MongoDB のワイヤープロトコルで使われる zlib1 メッセージ圧縮機能。
- 影響:認証不要の攻撃者が任意のヒープメモリ(未初期化領域)を読み取れる。
- 重要性:そこに平文パスワード、API キー、セッショントークン、顧客データ等が残っている可能性があります。
2️⃣ 攻撃手順
-
悪意ある OP_COMPRESSED メッセージを作成
を極端に大きく(例:1 MB)設定し、実際のペイロードは約1 KB。uncompressedSize- MongoDB は 1 MB のバッファを確保して展開を行う。
-
展開時のバグ
- zlib が解凍後、MongoDB は
と実際サイズが一致するか検証しない。uncompressedSize - バッファ全体を有効な BSON であるとみなし、末尾に残るヒープガーベジも処理対象として扱う。
- zlib が解凍後、MongoDB は
-
BSON デシリアライズの欠陥
- フィールド名は
まで読み取る。\0 - バッファに無関係なデータが含まれるため、パーサーは終端前に機密バイトを読むことがある。
- MongoDB はそのデータを含むエラーメッセージを返す。
- フィールド名は
-
結果 – 攻撃者は任意のヒープ内容を何度でも取得できる。
3️⃣ 技術的詳細
| コンポーネント | 説明 |
|---|---|
| Mongo ワイヤープロトコル | すべてのコマンドに という単一オペコードを使用。 |
| BSON | バイナリ JSON、C‑型エンコーディングで効率的。フィールド名はヌル終端文字列。 |
| OP_COMPRESSED フォーマット | |
| バグのトリガー | が実際と不一致 → バッファサイズが検証されない。 |
4️⃣ 影響範囲・曝露状況
- 認証不要 – 初期リクエスト解析時に発生。
- 公開インスタンス:Shodan による調査で 213,000 件以上が検出。
- 対象バージョン:3.6 から 8.x までのすべて(EOL の 3.6、4.0、4.2 は修正を受けない)。
5️⃣ タイムライン
| 日付 | イベント |
|---|---|
| 2017年6月 | バグが導入 (PR #1152)。 |
| 2025年12月17日 | 修正コミット ()。 |
| 2025年12月19日 | CVE が正式に公開。 |
| 2025年12月22日 | 主ブランチへマージ。 |
| 2025年12月24日 | MongoDB が Atlas の全インスタンスをパッチ済みと発表、利用例は確認されていない旨を主張。 |
6️⃣ 対策
- 最新版にアップデート(MongoDB 8.0.17 以降)。
- zlib 圧縮を無効化:すぐに更新できない場合はネットワーク層で圧縮をオフにする。
圧縮の無効化は公式パッチ適用までの一時的対策として有効です。
7️⃣ リソース
結論
インターネットに公開されている MongoDB インスタンスは、直ちにパッチ適用または zlib 圧縮の無効化を行うべきです。認証なしで極めて機密性の高い情報が漏洩する恐れがあります。