Mongoose 高危RCE漏洞(CVE-2024–53900与CVE-2025–23061):技术原理与风险缓解

2 阅读4分钟

Critical RCE Vulnerabilities in Mongoose (CVE-2024–53900 & CVE-2025–23061): Risks and Mitigation Strategies
Criminal IP Follow
4 min read · Mar 21, 2025
50

Listen

Share

Press enter or click to view image in full size

最近,OPSWAT 在其博客中分析了 Mongoose(MongoDB 和 Node.js 的对象数据建模库)中两个关键漏洞 CVE-2024–53900 和 CVE-2025–23061 的概念验证代码。当 Mongoose 暴露在互联网上时,可能引发严重安全风险,包括未授权访问、数据泄露、NoSQL 注入、远程代码执行和 DDoS 攻击。这两个漏洞的 CVSS v3 评分分别为 9.1 和 9.0,均可导致 RCE。本文将探讨如何使用 Criminal IP 资产搜索来检测互联网上暴露的 Mongoose 实例并评估其安全风险。

Mongoose RCE 漏洞 PoC:CVE-2024–53900 与 CVE-2025–23061

Mongoose 简化了 MongoDB 与 Node.js 应用之间的交互。根据 OPSWAT 的分析,这两个漏洞与 $where 操作符有关。当与 populate() 函数一起使用时,$where 操作符允许在 MongoDB 文档中查询数据。它也是 MongoDB 的一个查询操作符,能够执行任意 JavaScript 代码,从而定义特定的数据检索条件。如果攻击者利用 $where 操作符操纵查询,MongoDB 服务器可能无法识别该恶意操作,使得恶意代码在应用服务器本地执行。OPSWAT 的研究人员通过构造一个不会引发 MongoDB 服务器错误的查询,成功在 Node.js 应用服务器上执行了远程代码。

漏洞 CVE-2024–53900 在 Mongoose 8.8.3 版本中通过禁止在 match 属性内使用 $where 操作符进行了修复。然而,后续发现当 $where 操作符嵌套在 $or 操作符中时,仍然可以传递给 populate() 函数,从而产生了新漏洞 CVE-2025–23061。该问题已在 Mongoose 8.9.5 版本中修复,建议用户更新到最新版本以同时解决这两个漏洞。

受影响版本

  • 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 的服务器过载,导致服务中断。

探索互联网上暴露的 Mongoose

使用 Criminal IP 资产搜索可以轻松识别暴露的 Mongoose 实例。

Criminal IP 搜索查询:
Mongoose product: "mongoose"
www.criminalip.io/asset/searc…

截至 2025 年 3 月 13 日,已识别出超过 27,000 个暴露于互联网的 Mongoose 实例,其中许多受到 CVE 影响的漏洞版本。在资产搜索中简单搜索 mongoose,即可查看 IP 地址是否受 CVE 影响以及所使用的版本。

此外,导航到特定 IP 地址的 IP 报告页面,可以查看该 IP 受影响的漏洞及其利用历史,还可以获取开放端口、IP 地址位置和 WHOIS 信息等详细信息。

结论

为了保护 MongoDB 和 Mongoose 免受互联网暴露的风险,必须应用最新补丁、加强网络配置、实施认证、设置防火墙并增强应用程序安全性。同时,建议使用像 Criminal IP 这样的网络威胁情报搜索引擎和像 Criminal IP ASM 这样的攻击面管理解决方案,进行持续的攻击面监控和自动检测。如果 MongoDB 的安全设置不足,数据泄露和服务器接管的风险会增加,因此务必全面应用上述安全措施。 CSD0tFqvECLokhw9aBeRqqy7pDVE9jtHSghPeFdiPyEcot6XSwtlxuJCHOQzH/s/OqjBHhkUisE97qkAIThbWRoZfD6jpS8zICCT+s+pDivwCXJuQJyjiSTLy6nT/bwNbFjMug1tMMukL50sUXucG1EouBtvCazqsVKkgsLOXbe+nvuruidVgH2He2PIfpcB