
最近、OPSWATは自社ブログで、MongoDBおよびNode.js ODM(Object Data Modeling)ライブラリである Mongoose の脆弱性 CVE-2024-53900 および CVE-2025-23061 に関するPoCを分析しました。Mongooseはインターネット上に公開されると、無認証アクセス、データ流出、NoSQLインジェクション攻撃、RCE(リモートコード実行)、DDoS などの深刻なセキュリティリスクを引き起こす可能性があります。実際に、この2つの脆弱性はいずれもRCEにつながる恐れがあり、それぞれ CVSS v3 基準で9.1および9.0 と評価されています。本記事では、Criminal IP IT資産検索を活用して、インターネット上に公開されたMongooseを探索する方法と、その公開状況を紹介します。
Mongoose RCE脆弱性「CVE-2024-53900 & CVE-2025-23061」のPoC分析
Mongooseは、MongoDBとNode.jsアプリケーション間の相互作用を簡単にするために使用されます。OPSWATの分析によると、これら2つの脆弱性は $where 演算子に関連があるそうです。$where 演算子は populate() 関数と併用することで、MongoDBドキュメント内のデータ検索が可能になります。さらに、MongoDBのクエリ演算子として、任意のJavaScriptコードを直接実行できるため、攻撃者が $where 演算子を悪用してクエリを改ざんすると、MongoDBサーバーがクエリを正しく処理できなくなり、マルウェアがアプリケーションサーバー上でローカル実行されるリスクが生じます。OPSWATの研究者は、MongoDBサーバーのエラーを回避しつつ、Node.jsアプリケーションサーバーでリモートコード実行(RCE)を成功しました。
最初に発見された CVE-2024-53900 は、Mongoose 8.8.3 において、$where 演算子が match 属性内で使用されないようにすることで修正されました。しかし、その後の分析で、$where 演算子が $or 演算子内にネストされている場合、依然として populate() 関数経由で実行可能であることが判明し、CVE-2025-23061 という新たな脆弱性につながりました。この CVE-2025-23061 はMongoose 8.9.5 にて修正されており、両方の脆弱性を解決するためには、Mongooseを最新バージョンにアップデートすることが不可欠です。
脆弱な Mongoose バージョン
- CVE-2024-53900:8.8.3以前のバージョン
- CVE-2025-23061:8.9.5以前のバージョン
インターネットに公開された Mongoose のセキュリティリスク
Mongooseがインターネットに公開されると、上記の脆弱性をはじめ、無認証アクセス、データ流出、NoSQLインジェクション攻撃、RCE、DDoS攻撃など、致命的なセキュリティ脅威が発生する可能性があります。
| セキュリティリスク | 詳細 |
|---|---|
| 無認証アクセス | Mongooseは基本的にMongoDBと連結されており、セキュリティ設定が適切に適用されない場合、外部から誰でもデータベースにアクセスすることができます。 MongoDBの場合、セキュリティ設定が不十分な場合、認証なしでアクセスが可能であり、攻撃者はfind()、update()、delete()などのコマンドでデータを改ざんすることができます。 |
| データ流出 | Mongooseを通じて運営するデータベースが外部に公開されると、攻撃者がAPIエンドポイントを悪用して重要な情報を公開する可能性があります。 特に、ユーザー情報、アカウント情報、機密データなどが公開される可能性が高いです。 |
| NoSQLインジェクション攻撃 | Mongooseがインターネットに公開されると、攻撃者はNoSQLインジェクションを通じてデータベースを改ざんすることができます。 例えば、攻撃者がログインAPIに { “$gt”: “” } のようなペイロードを入力すると、認証をバイパスすることができます。 |
| リモートコード実行とサーバー制御のリスク | 攻撃者はMongooseを通じて、サーバー内部で任意のコードを実行することができます。 特に、eval()、exec()、または間違ったクエリの実行方法が含まれている場合、攻撃者がサーバーを掌握する可能性があります。 |
| DDoS攻撃のリスク | 攻撃者がランダムに大量のリクエストを送信すると、Mongooseを使用するサーバーが過負荷状態になり、サービス障害が発生する可能性があります。 |
このようにMongoDBとMongooseがインターネットに公開されると、深刻なセキュリティの脅威が発生する可能性があるため、ユーザーは継続的にセキュリティの状態をチェックし、公開状態を監視する必要があります。
インターネットに公開されたMongooseを見つける
インターネットに公開されたMongooseは、Criminal IPのIT資産検索で簡単に見つけることができます。
Criminal IPの検索クエリ:Mongoose product: “mongoose”

2025年3月13日を基準として、インターネットに公開されているMongooseは約2万7千件以上で、CVEの影響を受ける脆弱なバージョンも多数確認されています。IT資産検索で「Mongoose product: “mongoose”」を検索するだけで、CVEの影響を受けるIPアドレスであるか、どのバージョンを使用しているのかをチェックできます。
さらに、特定のIPアドレスのIPレポートページに移動すると、そのIPアドレスがどのような脆弱性の影響を受けるかを悪用履歴とともに確認することができ、オープンポートとIPアドレスの位置、WHOIS情報を含むより詳細な内容を確認することができます。

FAQ
Q1. Mongooseがインターネットに公開される原因は何ですか?
Mongooseがインターネットに公開される原因は、ほとんど設定ミスとセキュリティー不足が原因です。特に、MongoDBの不適切なネットワーク設定、認証と権限の未設定、アプリケーションコード内のセキュリティの脆弱性、そしてファイアウォールの不十分な設定による外部アクセスを許可することが主な原因として挙げられます。
Q2. Mongooseの公開を防ぐ方法は何ですか?
MongoDBとそれを使用するMongoose ODMがインターネットに公開されないように保護するには、ネットワーク設定の強化、認証と権限の設定、アプリケーションセキュリティの強化、ファイアウォールの適用だけでなく、サイバー脅威インテリジェンス検索エンジンと攻撃対象領域管理ソリューションを活用した継続的な監視が必要です。
- MongoDBネットワークへのアクセス制限
- 認証とアクセス制御の有効化
- ファイアウォールとセキュリティグループの設定
- アプリケーションコードのセキュリティ強化
- NoSQLインジェクションの防止
- サイバー脅威インテリジェンス検索エンジンの活用
- 攻撃対象領域管理(ASM)の活用
結論
MongoDBとMongooseをインターネット公開から保護するためには、最新のパッチ適用とともに、ネットワーク設定、認証適用、ファイアウォール設定、アプリケーションセキュリティの強化を欠かせません。また、サイバー脅威インテリジェンス検索エンジン「Criminal IP」と攻撃対象領域管理ソリューション「Criminal IP ASM」を活用して、継続的な攻撃対象領域の監視と自動検知機能を適用することが重要です。
MongoDBのセキュリティ設定が不十分な場合、データ流出とサーバー掌握のリスクが大きくなるため、先に紹介したセキュリティ対策を徹底的に適用する必要があります。
関連してOracle Weblogic Serverの脆弱性「CVE-2020-2883」:5年間続いたサーバー掌握の脅威をご参照ください。
データの提供:Criminal IP(https://www.criminalip.io/ja)、SC Media(https://www.scworld.com/news/mongoose-odm-critical-rce-flaws-detailed-poc-exploits-revealed)、Security Week(https://www.securityweek.com/vulnerabilities-in-mongodb-library-allow-rce-on-node-js-servers/)、OPSWAT Blog(https://www.opswat.com/blog/technical-discovery-mongoose-cve-2025-23061-cve-2024-53900)
ご参照:
