Skip to content

NoSQL Injection in loopback-connector-mongodb

High severity GitHub Reviewed Published Jun 4, 2019 to the GitHub Advisory Database • Updated Jan 9, 2023

Package

npm loopback-connector-mongodb (npm)

Affected versions

< 3.6.0

Patched versions

3.6.0

Description

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 unless disabled (instructions here).

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.

References

Reviewed Jun 4, 2019
Published to the GitHub Advisory Database Jun 4, 2019
Last updated Jan 9, 2023

Severity

High

Weaknesses

CVE ID

No known CVE

GHSA ID

GHSA-m734-r4g6-34f9

Source code

No known source code
Checking history
See something to contribute? Suggest improvements for this vulnerability.