MEDIUM 6.4

CVE-2026-1856: Stored XSS in WordPress Appointment Booking Calendar Plugin – Patch & Detection Guide

The Appointment Booking Calendar plugin for WordPress has a stored cross-site scripting (XSS) flaw affecting all versions through 1.4.4. An attacker with Author-level WordPress access or higher can inject malicious scripts into custom booking field labels. These scripts persist in the database and execute whenever anyone views the affected page, potentially stealing session cookies, hijacking accounts, or redirecting users to malicious sites. The vulnerability requires authenticated access, which limits its attack surface but makes it a concern for organizations managing multiple WordPress contributors or where account compromise is possible.

Source data · NVD / CISA · public domain

CVSS
3.1 · 6.4 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Weaknesses (CWE)
CWE-79
Affected products
0 configuration(s)
Published / Modified
2026-06-19 / 2026-06-22

NVD description (verbatim)

The Appointment Booking Calendar plugin for WordPress is vulnerable to Stored Cross-Site Scripting via custom booking field labels in all versions up to, and including, 1.4.4 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with Author-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.

4 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-1856 is a stored XSS vulnerability (CWE-79) in the Appointment Booking Calendar plugin stemming from insufficient input sanitization and output escaping of custom booking field labels. The plugin fails to properly sanitize user input when field labels are created and does not escape output when those labels are rendered in the page DOM. Because the malicious payload is stored in the WordPress database, it executes in the context of any user who views a page containing the injected field—making this a persistent, high-impact variant of XSS. The CVSS 3.1 score of 6.4 (Medium) reflects the requirement for authenticated (Privilege Level: Low) access, though the impact spans confidentiality and integrity with changed scope (affecting other users beyond the immediate victim).

Business impact

For WordPress site owners relying on this plugin for appointment scheduling, a successful exploit could compromise visitor and administrative user sessions, lead to credential theft, or enable defacement of booking pages. Customer trust may be eroded if users are redirected to phishing sites or see injected advertisements. In multi-author environments (agencies, publishing platforms, SaaS), compromised Author accounts become a vector for site-wide XSS attacks. Remediation delays increase dwell time for malicious scripts, multiplying exposure across all site visitors during the vulnerable window.

Affected systems

All versions of the Appointment Booking Calendar plugin for WordPress up to and including version 1.4.4 are vulnerable. This includes any WordPress installation running the plugin at or below that version threshold. The vulnerability requires authentication at Author level or above, so it does not pose a risk to sites where only trusted administrators have publishing access. However, sites permitting guest authors, freelance contributors, or client accounts to manage content are at elevated risk.

Exploitability

Exploitation requires an authenticated attacker with Author-level capabilities or administrative privileges. This is a meaningful constraint that prevents completely anonymous attacks. However, the attack is straightforward once access is obtained: inject JavaScript into a custom booking field label, and the payload executes whenever the field is displayed. No user interaction is required beyond normal site navigation (no click or form submission needed). The vulnerability is not listed on CISA's Known Exploited Vulnerabilities (KEV) catalog, suggesting active exploitation in the wild has not been broadly documented as of the last update, though this does not guarantee absence of threat activity.

Remediation

Site operators must update the Appointment Booking Calendar plugin to a patched version that properly sanitizes custom booking field label input and escapes output on render. Verify the plugin's official repository or vendor advisory for the specific patch version addressing this flaw. In the interim, restrict Author-level WordPress access to fully trusted accounts only, and consider disabling custom booking fields if the feature is not essential. Audit existing booking field configurations for suspicious labels that may already be injected.

Patch guidance

Check the official Appointment Booking Calendar plugin page on the WordPress plugin directory for an available security update beyond version 1.4.4. Download and install the latest version as soon as testing in a staging environment confirms compatibility with your WordPress and PHP versions. If the vendor has not yet released a patch, monitor their security advisories or changelog for an imminent release. Do not assume an auto-update will occur; manually verify the installed version post-update to confirm remediation.

Detection guidance

Review WordPress user roles and audit which accounts hold Author level or above—remove or downgrade accounts that do not require that privilege. Examine the plugin's stored booking field label configurations in the database or via the WordPress admin interface for suspicious JavaScript patterns (e.g., <script>, onerror=, onclick=, etc.). Check site logs and browser console errors for unexpected script execution tied to booking field pages. Use WordPress security plugins with XSS detection capabilities to scan stored content for malicious payloads. If a breach is suspected, rotate affected user credentials and review admin audit logs for unauthorized label modifications.

Why prioritize this

Although classified as Medium severity, this vulnerability merits prompt attention because stored XSS has a persistent, site-wide reach—every visitor sees the injected payload once it lands in the database. The attack surface narrows due to authentication requirements, but compromised or malicious Author accounts create a real-world threat in collaborative environments. The absence of a KEV listing suggests lower current exploit prevalence, allowing a window to patch proactively before mass exploitation occurs. Organizations running this plugin should prioritize patching within 30 days, sooner if guest author features are in use.

Risk score, explained

The CVSS 3.1 base score of 6.4 (Medium) balances several factors: Network-accessible attack vector (AV:N) and low attack complexity (AC:L) favor attacker; the Privilege Level requirement (PR:L) constrains the threat to authenticated users; Scope Changed (S:C) indicates impact beyond the immediate resource, affecting other users' views; Confidentiality and Integrity impacts (C:L, I:L) reflect session hijacking and content manipulation potential; no Availability impact (A:N) applies since the service remains operational. The score appropriately reflects a real but bounded threat that requires internal actor cooperation or account compromise to trigger.

Frequently asked questions

Can this vulnerability be exploited without a WordPress account?

No. The flaw requires at least Author-level authenticated access to WordPress. Unauthenticated visitors cannot inject payloads into custom booking field labels. However, once an authorized user injects malicious code, any visitor to the booking page will execute it—so the initial compromise must come from an insider or a separate breach that yields Author credentials.

Does updating WordPress core fix this issue?

No. This is a plugin-specific vulnerability in the Appointment Booking Calendar plugin, not a WordPress core flaw. You must update the plugin itself to a patched version. WordPress core updates will not remediate this issue.

What should I do if I suspect malicious booking field labels are already on my site?

Immediately audit and remove or modify all custom booking field labels in the plugin settings, preferably from a different administrative account or after changing your WordPress password. Review admin audit logs and user activity to identify if labels were altered by unauthorized accounts. Consider a temporary disable of the custom fields feature until you can install a patched plugin version. If visitor compromise is suspected, advise users to clear browser cookies and reset their passwords.

Is there a temporary workaround to protect my site before a patch is available?

Until a patch is released, restrict Author-level and administrative access to only fully trusted staff, and disable the custom booking field feature if it is not actively used. Use a Web Application Firewall (WAF) rule to detect and block requests containing common XSS payloads aimed at booking field parameters. These are defensive measures, not a substitute for patching; apply the security update as soon as it becomes available.

This analysis is provided for informational and defensive cybersecurity purposes. SEC.co makes no warranties regarding the accuracy of third-party vendor information, patch availability timelines, or the applicability of remediation steps to specific deployments. Organizations must verify all guidance against official vendor advisories and test patches in non-production environments before deployment. Exploit code, weaponization methods, and active threat indicators are not disclosed in this document. Consult CISA, the WordPress Security Team, and the plugin vendor for the most current threat intelligence and patch status. Source: NVD (public-domain), retrieved 2026-07-27. Analysis generated by SEC.co (claude-haiku-4-5).