logo

GHSA-m734-r4g6-34f9 loopback-connector-mongodb

Package

Manager: npm
Name: loopback-connector-mongodb
Vulnerable Version: >=0 <3.6.0

Severity

Level: High

CVSS v3.1: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N/E:U/RL:O/RC:C

CVSS v4.0: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

EPSS: N/A pctlN/A

Details

NoSQL Injection in loopback-connector-mongodb Versions of `loopback-connector-mongodb` before 3.6.0 are vulnerable to NoSQL injection. MongoDB Connector for LoopBack fails to properly sanitize a filter passed to query the database by allowing the dangerous `$where` property to be passed to the MongoDB Driver. The Driver allows the special `$where` property in a filter to execute JavaScript (client can pass in a malicious script) on the database Driver. This is an [intended feature of MongoDB](https://docs.mongodb.com/manual/core/server-side-javascript/) unless disabled ([instructions here](https://docs.mongodb.com/manual/core/server-side-javascript/#disable-server-side-js)). A proof of concept malicious query: ``` GET /POST filter={"where": {"$where": "function(){sleep(5000); return this.title.contains('Hello');}"}} ``` The above makes the database sleep for 5 seconds and then returns all “Posts” with the title containing the word `Hello`. ## Recommendation Update to version 3.6.0 or later.

Metadata

Created: 2019-06-04T19:36:17Z
Modified: 2021-08-04T20:47:58Z
Source: https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2019/06/GHSA-m734-r4g6-34f9/GHSA-m734-r4g6-34f9.json
CWE IDs: ["CWE-89"]
Alternative ID: N/A
Finding: F106
Auto approve: 1