{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-120741","assignerOrgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","state":"PUBLISHED","assignerShortName":"Wordfence","dateReserved":"2026-11-02T20:48:37.380Z","datePublished":"2026-11-07T02:29:17.979Z","dateUpdated":"2026-11-07T02:29:17.979Z"},"containers":{"cna":{"providerMetadata":{"orgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","shortName":"Wordfence","dateUpdated":"2026-11-07T02:29:17.979Z"},"affected":[{"vendor":"jetmonsters","product":"MotoPress Appointment Booking","versions":[{"version":"0","status":"affected","lessThanOrEqual":"2.4.8","versionType":"semver"}],"defaultStatus":"unaffected"}],"descriptions":[{"lang":"en","value":"The MotoPress Appointment Booking Lite plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to, and including, 2.4.8 via the public '/motopress/appointment/v1/customers/create' REST endpoint. The route is registered with permission_callback => '__return_true' and the handler's 'name' parameter is not sanitized before being written to the custom wp_mpa_customers table via $wpdb->insert, nor is it escaped on output in the admin bookings list when the viewing user lacks the 'mpa_edit_customer' capability (such as the plugin-defined Appointment Employee role). This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page."}],"title":"MotoPress Appointment Booking <= 2.4.8 - Unauthenticated Stored Cross-Site Scripting via Customer Name via /customers/create REST Endpoint","references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/f4e9d051-3379-4f59-9970-c66c44ca2626?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/motopress-appointment-lite/tags/2.4.8/includes/admin-pages/manage/ManageBookingsPage.php#L670"},{"url":"https://plugins.trac.wordpress.org/browser/motopress-appointment-lite/tags/2.4.8/includes/admin-pages/manage/ManageBookingsPage.php#L689"},{"url":"https://plugins.trac.wordpress.org/browser/motopress-appointment-lite/tags/2.4.8/includes/rest/controllers/motopress/appointment/v1/CustomersRestController.php#L165"},{"url":"https://plugins.trac.wordpress.org/browser/motopress-appointment-lite/tags/2.4.8/includes/rest/controllers/motopress/appointment/v1/CustomersRestController.php#L24"},{"url":"https://plugins.trac.wordpress.org/browser/motopress-appointment-lite/tags/2.4.8/includes/repositories/CustomerRepository.php#L314"},{"url":"https://plugins.trac.wordpress.org/browser/motopress-appointment-lite/tags/2.4.8/includes/entities/Booking.php#L247"},{"url":"https://plugins.trac.wordpress.org/browser/motopress-appointment-lite/tags/2.4.8/includes/handlers/SecurityHandler.php#L235"},{"url":"https://plugins.trac.wordpress.org/changeset/3782125"},{"url":"https://plugins.trac.wordpress.org/changeset/3782125/motopress-appointment-lite/trunk/includes/admin-pages/manage/ManageBookingsPage.php"}],"problemTypes":[{"descriptions":[{"lang":"en","description":"CWE-79 Improper Neutralization of Input During Web Page Generation","cweId":"CWE-79","type":"CWE"}]}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N","baseScore":5.4,"baseSeverity":"MEDIUM"}}],"credits":[{"lang":"en","type":"finder","value":"GivMeInJ"}],"timeline":[{"time":"2026-11-02T21:03:58.000Z","lang":"en","value":"Vendor Notified"},{"time":"2026-11-06T14:08:52.000Z","lang":"en","value":"Disclosed"}]}}}