MongoDB库中存在多个漏洞,可用于在Node.js服务器上实现RCE
MongoDB库中存在多个漏洞,可用于在Node.js服务器上实现RCE
Ionut Arghire 代码卫士 2025-02-25 10:53
聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
网络安全平台 OPSWAT报道称,MongoDB的库 Mongoose Object Data Modeling (ODM) 中存在两个严重漏洞,可导致攻击者在 Node.js 应用服务器尚实现远程代码执行 (RCE)。
Mongoose 库广泛部署于生产环境中,可将 JavaScript 对象映射到 MongoDB 文档中,使数据管理和验证更加容易。虽然该功能改进了文档之间的工作关系,但可被用于实现RCE。
第一个高危漏洞是CVE-2024-53900,可导致攻击者利用 $where 值在 Node.js上实现RCE。第二个漏洞CVE-2025-23061是对CVE-2024-53900补丁的绕过。
研究人员解释称,$where 是MongoDB的一个查询操作符,可使 JavaScript 直接在 MongoDB 服务器上执行,不过会施加某些限制。在处理被检索的数据时,Mongoose的其中一个函数将把 $where 值传递给从外部库导入的一个函数,在应用服务器上本地处理查询,而无需验证输入。研究人员提到,“缺乏输入验证和限制引入了一个严重的安全漏洞,因为由用户输入直接控制的 “params” 值可遭利用,从而可能导致代码注入攻击。”
CVE-2024-53900的补丁增加了检查,禁止将 $where 操作符传递给易受攻击的函数,从而阻止恶意payload遭执行。然而通过将 $where 操作符嵌入到由 MongoDB和该易受攻击函数支持的 $or 操作符中,可绕过该补丁。
OPSWAT公司的研究人员提到,“因此,攻击者可将 $where 嵌入到 $or 下,躲避补丁单个层面的检查。由于 Mongoose 仅检查配对数组中每个对下给你的顶层属性,因此该绕过payload仍然处于未被检测状态,最终到达 sift 库,从而造成恶意RCE。
OPSWAT已发布针对这两个漏洞的概念验证,并建议将 Mongoose 更新至8.9.5或后续版本,完全修复这两个漏洞。
代码卫士试用地址:
https://codesafe.qianxin.com
开源卫士试用地址:https://oss.qianxin.com
推荐阅读
Spring Data MongoDB SpEL表达式注入漏洞安全风险通告第二次更新
不安全的 MongoDB 数据库爆出大秘密:俄政府拥有访问在俄企业的后门账户
MongoDB 数据库无凭证保护 近10万 app用户的个人详情遭暴露
原文链接
https://www.securityweek.com/vulnerabilities-in-mongodb-library-allow-rce-on-node-js-servers/
题图:
Pexels
License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “
在看
” 或 “
赞
” 吧~