WordPress security changelog
HIGH CVE-2026-15401 Deferred

VikBooking guest details permit unauthenticated stored XSS

VikBooking through 1.8.13 accepts unauthenticated booking submissions through the public saveorder task. Attacker-controlled vbf custom-field values are read with VikRequest::getString(), assembled by buildCustData() and stored in the order's custdata record. The administrative edit-order view later splits those stored details and outputs the resulting value without HTML escaping, allowing a malicious booking field to execute script when staff inspect the order.

CVE / CNA score 7.2 CVSS 3.1 · security@wordfence.com
NVD score Pending NVD has not published its own CVSS assessment.
Component
VikBooking Hotel Booking Engine & PMS
Plugin slug
vikbooking
Affected
<= 1.8.13
Safe version
1.8.14
Published
Jul 24, 2026
Weakness
CWE-79 — Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

This CVE was published Jul 24, 2026 and is one of 18 known issues for this plugin.

Update, patch or deactivate.

Update VikBooking to 1.8.14 or later. The fixed release applies htmlspecialchars() when rendering stored customer-detail values and escapes custom-field defaults in the confirmation form. Review untrusted bookings created while a vulnerable release was active and remove markup from stored custom-field data before staff open affected orders.

A safe version is available, so updating to that version or later is the preferred remediation. If an immediate update is not practical, consider a targeted application patch or temporarily restricting the affected functionality.

Deactivate only when warranted by your risk profile, or when advised by your hosting provider in the limited circumstances where the vulnerability cannot otherwise be mitigated. If you’re unsure which action is appropriate, contact Fused or your hosting provider for guidance.

Technical description

The VikBooking Hotel Booking Engine & PMS plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'vbfX' parameter in all versions up to, and including, 1.8.13 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 vbfX custom-field value is stored via the public-facing saveorder task, which has no capability or authentication check enforced by default, enabling fully unauthenticated submission of malicious payloads.

CVE / CNA vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N

Primary and upstream sources