New MongoDB Vulnerability Allows Attackers to Crash Servers, Exposing Critical Data
2026/03/05 gbhackers — MongoDB の OP_COMPRESSED ワイヤー・プロトコルに起因する DoS 脆弱性が、Cato CTRL のシニア セキュリティ研究者 Vitaly Simonovich により発見された。この脆弱性 CVE-2026-25611 (CVSS4.0:8.7) を悪用する未認証の攻撃者は、公開されている MongoDB サーバをクラッシュさせることが可能である。

この圧縮機能 OP_COMPRESSED はバージョン 3.4 で導入され、バージョン 3.6 以降ではデフォルトで有効化されている。この脆弱性の影響が及ぶ範囲は、バージョン 7.0/8.0/8.2 であり、その中には MongoDB Atlas も含まれる。
攻撃の仕組み
MongoDB が圧縮メッセージを受信すると、パケットヘッダ内の uncompressedSize フィールドが読み取られる。その後に、実際の圧縮データと宣言サイズの一致が検証されるべきであるが、その前に、指定されたサイズ分のメモリ・バッファが確保されてしまう。

この攻撃者は、約 47KB の細工パケットを送信し、uncompressedSize を 48MB と偽装する。これにより、ほとんど実データが存在しない状況で、サーバに対して巨大なメモリ・ブロックを確保させる。
この増幅率は “1,027:1” に達する。短いメール相当のデータ送信で、音声ポッドキャスト規模のメモリ確保を強制する規模である。

脆弱な関数 SharedBuffer::allocate (uncompressedSize) は、”message_compressor_manager.cpp” の line 158 でメモリを確保する。検証は line 175 で実施されるが、その時点では既に影響が発生している。
この脆弱性を悪用する攻撃者は、MongoDB のワイヤー・プロトコル解析段階を標的とし、認証チェック前に攻撃を開始できる。したがって、インターネット公開されている、すべての MongoDB インスタンスが潜在的な標的となっている。
この攻撃において必要なものは、port 27017 への同時 TCP 接続のみであり、その影響は、ターゲットの RAM 容量に比例して拡大する。
512MB の MongoDB インスタンスであれば、約 10 回の接続 (約 457KB のトラフィック) でクラッシュする。64GB のエンタープライズ・サーバは、約 1,363 回の接続 (約 64MB のトラフィック) で停止する。この攻撃は、単一の家庭用インターネット回線でも実行できる規模のものである。
Cato Networks によると、現時点で 207,000 を超える MongoDB インスタンスがインターネット上で公開されている。
Indicators of Compromise (IoC)
セキュリティ・チームは、以下の兆候を監視すべきである。
- 単一 IP から port 27017 への大量 TCP 接続
- OP_COMPRESSED パケットが 10MB 超でも、総パケット・サイズは 100KB 未満
- mongod プロセスの急激なメモリ使用量の増加
- MongoDB 標的の OOM (out-of-memory) キラーイベントのシステムログ記録
- MongoDB プロセスが code 137 (kernel SIGKILL due to OOM) で終了
パッチ適用と緩和策
すでに MongoDB は、バージョン 7.0.29/8.0.18/8.2.4 で修正をリリースし、この問題に対処している。具体的には、メモリ確保前に uncompressedSize フィールドが検証されるようになった。
ユーザー組織として必要なことは、速やかなアップグレードと、port 27017 の “0.0.0.0/0” での非公開化である。さらに MongoDB Atlas ユーザーは、IP アクセス・リストを制限し、公開アクセスではなくプライベート接続を使用すべきである。
Linux の cgroups を用いる OS レベルでのメモリ制限設定も、パッチ適用までの影響範囲を軽減する。
この脆弱性は、MongoDB のバグバウンティ・プログラムを通じて責任ある開示が行われ、MongoDB セキュリティ・チームとの協力により修正された。
MongoDB の通信プロトコル (OP_COMPRESSED) に、サーバを強制停止させる深刻な DoS 脆弱性 CVE-2026-25611 (CVSS 8.7) が発見されました。この問題の原因は、データの正しさを確認する前に、プログラムがメモリを確保してしまうという、処理順序の不備にあります。
MongoDB が圧縮されたメッセージを受け取ると、パケットヘッダにある展開後のサイズが読み取られます。脆弱なバージョンでは、このサイズの妥当性を検証する前に、指定された通りの巨大なメモリ領域を確保されます。この欠陥を突く攻撃者は、わずか 47KB の小さなパケットで “48MB のメモリを確保せよ” という偽の命令を送り、サーバのメモリを枯渇させます。
この攻撃で懸念されるのは、ログインが必要になる前の段階で実行できるため、インターネットに公開されている、すべてのサーバに対して攻撃が可能なことです。ご利用のチームは、ご注意ください。よろしければ、MongoDB での検索結果も、ご参照ください。

You must be logged in to post a comment.