Booking for Appointments and Events Calendar – Amelia Plugin Vulnerability (CVE-2026-6286)

On this page

Security Alert Summary

The Booking for Appointments and Events Calendar – Amelia plugin for WordPress (versions up to and including 2.2) is vulnerable to stored cross-site scripting (XSS) via customer name fields. An authentication bypass allows unauthenticated booking submissions, and customer names are rendered into a JavaScript template and inserted via innerHTML without proper HTML entity encoding, enabling script injection that can execute when an administrator views the Calendar page and interacts with the malicious event.

CVE Details

  • CVE ID: CVE-2026-6286
  • Affected component: Booking for Appointments and Events Calendar – Amelia plugin for WordPress
  • Affected versions: Versions up to and including 2.2
  • Published: August 28, 2026 at 08:16:41 AM
  • Last modified: August 28, 2026 at 03:09:00 PM
  • CVSS v3.1: Base Score 7.2, Severity HIGH, Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
  • Authentication / privileges / user interaction: Authentication required: None (unauthenticated submission possible); Privileges required: None (PR:N); User interaction: None (UI:N)
  • Primary impact: Confidentiality: Low; Integrity: Low; Availability: None
  • Weakness: CWE-79 (Improper Neutralization of Input During Web Page Generation – Cross-site Scripting)

Technical Details

This vulnerability is a stored cross-site scripting issue in the Amelia booking plugin where customer name fields can contain characters that break out of an attribute in a rendered JavaScript template. The root causes described are:

  • An authentication bypass: the AddBookingCommand explicitly skips nonce verification (Command.php line 186), allowing unauthenticated users to submit booking data.
  • Insufficient output encoding: the plugin applies sanitize_text_field() to customer firstName and lastName fields (BookingApplicationService.php lines 302-308). This function removes HTML tags but preserves special characters such as double quotes, which are significant in HTML/JavaScript contexts.
  • Unsafe client-side rendering: the administrative Calendar view uses a FullCalendar eventContent callback that interpolates customer names directly into JavaScript template literals (referenced in redesign/dist/index.js line 199) and then inserts the result using innerHTML without HTML entity encoding.

Because double quotes are preserved by server-side sanitization, an attacker can inject strings like ‘” onmouseover=”alert(document.cookie)”‘ to break out of an attribute and introduce event handlers. These injected scripts are stored in the booking record and execute in an administrator’s browser when the Calendar page is viewed and the malicious event is hovered.

How This Could Impact Your Website

Consider a site with multiple users: a site owner, internal staff who manage bookings, and external contractors or customers who can create appointments. An unauthenticated attacker could submit a booking with a crafted customer name that contains a payload. When an administrative user opens the Calendar and hovers over the malicious appointment, the injected script can run in the administrator’s browser context.

  • Exposure of administrative session data or values accessible to JavaScript could occur, consistent with the reported confidentiality impact.
  • Attackers could perform actions in the admin user’s browser or modify displayed data, aligning with the reported integrity impact.
  • Such an issue increases the risk of targeted phishing or social engineering against staff whose contact information appears in booking records.

If youre unsure whether your site is affected or how to assess your current user roles and plugins, it may be worth having a professional review.

Recommended Actions

  • Update the affected plugin as soon as a patched version is available.
  • Review and reduce unnecessary user roles and privileges, especially contributor-level or public submission capabilities.
  • Enforce strong passwords and enable two-factor authentication for editors and administrators.
  • Remove unused or unmaintained plugins to reduce attack surface.
  • Monitor site activity and administrative logins for unusual behavior or unexpected booking entries.

If youd like help reviewing your plugins, user roles, or overall WordPress security posture, our team at Freshy is happy to help.


References