CVE-2026-15984: QuickCal <= 1.0.20 - Unauthenticated Stored Cross-Site Scripting via Custom Field Parameters
The QuickCal plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Custom Field Parameters in all versions up to, and including, 1.0.20 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. The nonce guarding the unauthenticated bookedaddappt AJAX action is publicly embedded on any page rendering the booking calendar shortcode, making it trivially obtainable by unauthenticated attackers without any prior account or privilege.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
WordPress QuickCal pluginto a version that resolves this vulnerability.Fixed in 1.0.20 - Compensating control
Since the nonce guarding the unauthenticated booked_add_appt AJAX action is publicly embedded on any page rendering the booking calendar shortcode, restrict access to pages/URLs that render the booking calendar shortcode (and/or otherwise limit exposure of the shortcode output) to trusted users.
Event History
Frequently Asked Questions
What must be exposed for an unauthenticated attacker to exploit this issue?
A page that renders the QuickCal booking calendar shortcode must be publicly accessible. The nonce required for the booked_add_appt AJAX action is embedded on such pages, allowing an unauthenticated attacker to obtain it without an account or privileges.
Who may be affected after malicious content is injected?
Any user who accesses a page containing the injected content may execute the attacker-supplied script in their browser. The impact includes potential compromise of confidentiality and integrity in the affected user's browser session.
Which QuickCal versions are known to be affected?
All versions up to and including 1.0.20 are affected.