MongoDB の DoS 脆弱性 CVE-2026-25611 が FIX:インターネット上の 207,000 インスタンスに影響

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 フィールドが読み取られる。その後に、実際の圧縮データと宣言サイズの一致が検証されるべきであるが、その前に、指定されたサイズ分のメモリ・バッファが確保されてしまう。

MongoDB DoS attack sequence (Source: CATO)
MongoDB DoS attack sequence (Source: CATO)

この攻撃者は、約 47KB の細工パケットを送信し、uncompressedSize を 48MB と偽装する。これにより、ほとんど実データが存在しない状況で、サーバに対して巨大なメモリ・ブロックを確保させる。

この増幅率は “1,027:1” に達する。短いメール相当のデータ送信で、音声ポッドキャスト規模のメモリ確保を強制する規模である。

vulnerable code (Source: CATO)
vulnerable code (Source: CATO)

脆弱な関数 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 のトラフィック) で停止する。この攻撃は、単一の家庭用インターネット回線でも実行できる規模のものである。

Publicly accessible MongoDB servers based on Shodan (Source: CATO)

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 セキュリティ・チームとの協力により修正された。