Severity by source
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
Network-reachable and unauthenticated, but AC:H and UI:R because the non-default cookie-remember setting must be enabled and the attacker must induce cookie state plus a victim visit; XSS scope-changes into the browser with low C/I impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
Lifecycle Timeline
2DescriptionCVE.org
The Online Scheduling and Appointment Booking System - Bookly plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'bookly-customer-full-name' cookie in versions up to, and including, 27.2 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. Exploitation requires 'Remember personal information in cookies' setting to be enabled (disabled by default).
Articles & Coverage 2
AnalysisAI
Stored cross-site scripting in the Bookly Online Scheduling and Appointment Booking System plugin for WordPress (versions through 27.2) allows remote unauthenticated attackers to inject arbitrary JavaScript via the 'bookly-customer-full-name' cookie, which is rendered without proper sanitization or output escaping. Exploitation is gated by the non-default 'Remember personal information in cookies' setting being enabled, and no public exploit identified at time of analysis. The flaw was reported by Wordfence and the upstream fix landed in changeset 3504922 in the WordPress plugin repository.
Technical ContextAI
Bookly is a widely deployed WordPress booking/scheduling plugin (vendor: Ladela) per the CPE 'cpe:2.3:a:ladela:online_scheduling_and_appointment_booking_system_-_bookly'. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically the stored/persistent variant where attacker-controlled cookie data ('bookly-customer-full-name') is later reflected into rendered HTML without escaping. Because cookies travel with every request and Bookly stores the customer name client-side to streamline repeat bookings, the tainted value is replayed and rendered to anyone visiting an affected booking page, turning a cookie write into a server-side stored XSS surface.
RemediationAI
Upstream fix available (commit/changeset 3504922 in plugins.trac.wordpress.org); released patched version not independently confirmed beyond 'fixed after 27.2', so administrators should update the Bookly plugin to the latest version published on WordPress.org once available and verify the installed version is greater than 27.2. As an immediate compensating control, disable the 'Remember personal information in cookies' setting in Bookly - this fully eliminates the exploit prerequisite on default-configured sites at the cost of customers needing to re-enter their name/contact info on each booking. Additional defense-in-depth: deploy a WAF rule (e.g., Wordfence) to strip script-like payloads from the 'bookly-customer-full-name' cookie, and add a restrictive Content-Security-Policy header on booking pages to block inline script execution. Review the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/b8ab6dfa-3764-470f-aa49-1964f42d93de?source=cve and the changeset at https://plugins.trac.wordpress.org/changeset/3504922/bookly-responsive-appointment-booking-tool for the exact code change.
Unauthenticated attackers can read the complete AI booking conversation transcript of any Bookly customer — including na
Stored cross-site scripting in the Bookly WordPress appointment booking plugin (versions up to and including 27.7) enabl
Unauthorized plugin update execution in the Bookly scheduling plugin for WordPress (all versions through 27.2) allows an
Price manipulation in Bookly WordPress plugin (versions up to 27.0) allows unauthenticated attackers to reduce appointme
Insecure Direct Object Reference in the Bookly plugin's Mobile Staff Cabinet API (versions up to and including 27.7) all
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-36651
GHSA-pfrr-cpcq-w8m8