| Nombre del plugin | Calendario de reservas |
|---|---|
| Tipo de vulnerabilidad | Scripting entre sitios (XSS) |
| Número CVE | CVE-2025-12804 |
| Urgencia | Baja |
| Fecha de publicación de CVE | 2026-02-01 |
| URL de origen | CVE-2025-12804 |
Urgent Security Advisory: Stored XSS in Booking Calendar plugin (≤ 10.14.6) — What WordPress Site Owners Need to Do Now
Summary (Hong Kong security consultant perspective): On 2 February 2026 a stored cross-site scripting (XSS) vulnerability affecting the Booking Calendar plugin for WordPress was publicly disclosed (CVE-2025-12804). Versions up to and including 10.14.6 are affected; the issue is fixed in 10.14.7. Although many public scores label the technical severity as low, practical risk depends on site configuration, roles and how the plugin is used. Treat this as a high-priority operational review if you run Booking Calendar on any public or shared-access site.
- Affected software: Booking Calendar plugin for WordPress (≤ 10.14.6)
- Vulnerability: Stored Cross-Site Scripting (XSS) via bookingcalendar shortcode
- CVE: CVE-2025-12804
- Required privilege for exploit: Contributor (authenticated)
- Fixed in: 10.14.7
- Public severity context: CVSS 6.5 (user interaction required)
- Immediate best action: update to 10.14.7 or later; if you cannot update immediately, apply virtual patching via a WAF and harden roles.
What happened? A concise technical summary
Stored XSS occurs when untrusted data submitted by an authenticated user is saved by the application and later rendered into pages without adequate escaping or sanitization. In this case, malicious content can be injected into data that is later output by the plugin’s bookingcalendar shortcode. The stored payload will execute in the context of browsers of users who visit pages where that shortcode is rendered.
Puntos técnicos clave:
- The injection vector is via content that a user with Contributor-level privileges can create or modify.
- Malicious content becomes persisted and is later served to visitors or administrators via the shortcode output.
- Successful exploitation requires a target user to load the affected page (user interaction).
- The plugin author fixed the issue in version 10.14.7 — upgrade immediately where possible.
Why this matters — realistic threat scenarios
Stored XSS is a powerful primitive because executed scripts run in the browser of anyone who visits the affected page and are bounded by the victim’s trust in the site. For Booking Calendar, realistic risks include:
- Robo de sesión: an admin or editor visiting an affected page could have cookies or session tokens targeted by JavaScript (unless cookies are properly marked HttpOnly, Secure).
- Canalizaciones de escalada de privilegios: a contributor injects payload that executes only for admins; once an admin’s browser is controlled, the attacker can perform actions through the admin UI.
- Content injection / defacement: redirects, fake overlays or misleading content shown to visitors.
- SEO / supply‑chain poisoning: insertion of malicious or spammy links that harm search reputation.
- Distribución de malware: redirecting or forcing browser downloads to malicious hosts.
The exploitation complexity is non-trivial: the attacker requires a Contributor account (or higher) and a victim to load the page. However, sites allowing public registrations or guest contributions increase the practical risk.
¿Quién está en riesgo?
- Sites running Booking Calendar versions ≤ 10.14.6.
- Sites that permit Contributor/Author roles without strict moderation.
- Sites that render bookingcalendar shortcodes on pages visited by privileged users or the public.
- Sites lacking browser-side mitigations (CSP, HttpOnly cookies, SameSite, security headers).
- Sites without perimeter protections or virtual patching while updates are applied.
Acciones inmediatas para propietarios de sitios (paso a paso)
Order matters — begin with non-disruptive checks, then containment and recovery:
- Confirme la versión del plugin: In WordPress dashboard → Plugins, check the Booking Calendar version. If it is 10.14.7 or newer you are not vulnerable to this issue. If not, continue below.
- Actualiza el plugin: Upgrade Booking Calendar to 10.14.7 or later as soon as possible. This is the single most effective action. If you have staging and automated tests, verify there first then update production promptly.
- If you cannot update immediately: apply virtual patching / perimeter rules: Use your WAF or reverse proxy to block suspicious inputs and patterns. Properly tuned rules can prevent stored XSS by rejecting inputs that include script tags, event attributes (onerror/onload), and javascript: URIs in fields that feed shortcode output.
- Reduce exposure via user roles: Temporarily restrict who can publish or edit content that will be rendered by bookingcalendar shortcode. Require review before publishing and disable open registrations if possible.
- Endurecer el acceso de administrador: Enforce two-factor authentication for admin/editor accounts, restrict admin area access by IP where feasible, and ensure cookies are set to Secure and HttpOnly where possible.
- Monitor and scan: Search the database for suspicious shortcode content, and review recent submissions from contributors. Monitor WAF and server logs for repeat attempts or anomalous POST requests.
- Incident response (if you detect exploitation): Isolate the site (maintenance mode), revoke compromised accounts, backup logs and evidence, remove malicious content or restore a clean backup, rotate credentials, and conduct a post-incident review.
Detección: qué buscar en los registros y la base de datos
Stored XSS often leaves artifacts. Search proactively: