Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttain WordPress contributor account
-
DeliveryAuthor post with malicious widget_search shortcode attribute
-
ExploitPublish page to persist payload in hidden HTML attribute
-
ExecutionPrivileged user visits injected page in vulnerable browser
-
PersistAccess key interaction triggers hidden-attribute script
-
ImpactAttacker harvests session token or performs admin-level actions
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a WordPress account with contributor-level privileges or above on the target site - unauthenticated attackers cannot exploit this vulnerability. The attacker must be able to publish or save content containing the 'widget_search' shortcode with a crafted attribute value. Critically, the stored payload is written into a hidden HTML attribute and is only executable via browser access key behavior (the HTML accesskey attribute acting as a trigger); browsers that do not expose access key interactions as an XSS execution path will not run the payload, and this is not universal behavior across modern browsers. Sites that restrict contributor registration to verified users, or that disable shortcode use for contributor-level roles, are not practically exploitable. The non-default browser interaction requirement is the primary limiting factor beyond the authentication prerequisite. |
| Impact | The Wordfence-assigned CVSS 6.4 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) captures the cross-origin scope change correctly via S:C and the contributor-level auth requirement via PR:L, but two metric choices are debatable. First, UI:N does not fully account for the fact that a victim must browse to the injected page - stored XSS typically warrants UI:R. Second, AC:L understates the attack complexity: the description explicitly limits exploitation to browsers where access key interactions can serve as a payload trigger, a non-universal browser behavior that many assessors would score AC:H. Neither CISA KEV listing nor EPSS data were provided, and no public exploit code has been identified, all of which reduce real-world urgency below what a raw 6.4 implies. The principal threat is privilege escalation within WordPress - a rogue contributor injecting scripts that execute for visiting editors or administrators, potentially enabling session hijacking or admin-level takeover - but the access key dependency is a meaningful constraint against opportunistic mass exploitation. |
| Exploit ScenarioDerived | An attacker with a contributor-level WordPress account crafts a post or page embedding the 'widget_search' shortcode with a malicious JavaScript payload in the shortcode attribute. Once published, when a site administrator or editor visits that page in a browser that processes HTML access keys as executable triggers, the hidden-attribute payload fires, potentially exfiltrating the victim's authentication cookies or performing privileged actions such as adding a new administrator account. No public proof-of-concept code has been identified, but the vulnerability details and source code references are publicly disclosed via Wordfence. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 24, 2026
Stored XSS in the WP Hotel Booking WordPress plugin (all versions through 2.3.2) allows authenticated contributors to inject persistent JavaScript via the 'widget_search' shortcode attribute, exploiting insufficient sanitization before rendering in page templates. The payload is stored in a hidden HTML attribute and executes in a victim's browser when they access the injected page, though exploitation is constrained to browsers where access key interactions can trigger hidden-attribute payloads. No public exploit code has been identified and this CVE is not listed in CISA KEV; real-world risk is lower than the CVSS 6.4 suggests due to the browser-specific prerequisite.
RemediationAI
Update WP Hotel Booking to a version beyond 2.3.2 immediately; a fix is recorded in the plugin's SVN repository at changeset revision 3609563 (https://plugins.trac.wordpress.org/changeset?reponame=&old=3609563%40wp-hotel-booking&new=3609563%40wp-hotel-booking) and is detailed in the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/9f3a4258-2f45-4617-a5ca-9b28835ef405. The exact patched release version has not been independently confirmed from available data - verify against the WordPress.org plugin page before deploying. As a compensating control prior to patching, audit and restrict the contributor role to fully trusted users only, and disable the use of arbitrary shortcodes by untrusted contributors using a plugin such as Disable Gutenberg or shortcode access controls - note this may break legitimate content authored by contributors. Wordfence Premium firewall rules may provide virtual patching for this specific vector.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
This is a CWE-79 (Stored Cross-Site Scripting) flaw rooted in insufficient input sanitization and output escaping within the WP Hotel Booking plugin by ThimPress (CPE: cpe:2.3:a:thimpress:wp_hotel_booking:*:*:*:*:*:*:*:*). The vulnerable code path processes the 'widget_search' shortcode attribute and passes it unsanitized to the template layer: the rendering logic in class-wphb-shortcode-hotel-booking.php (line 44) and the output in search-form.php (line 103) within the plugin's SVN tree at tags/2.3.2 confirm the injection sink. The payload is written into a hidden HTML attribute rather than a standard script context, meaning execution depends on the HTML accesskey attribute behavior - a browser accessibility feature that binds keyboard shortcuts to elements. Not all browsers expose this behavior in a way that serves as a usable XSS trigger, narrowing the realistic attack surface beyond what standard stored XSS typically presents.
Know when Wp Hotel Booking gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Access key browser dependency raises AC to H; stored XSS requires victim page visit so UI:R; contributor auth confirmed as PR:L; scope change retained.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The WP Hotel Booking plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'widget_search' Shortcode Attribute in all versions up to, and including, 2.3.2 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is only exploitable on browsers where access keys can be used as the payload is stored in a hidden attribute.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
More in Wp Hotel Booking
View allThe WP Hotel Booking plugin for WordPress is vulnerable to SQL Injection via the 'room_type' parameter of the /wphb/v1/r
The WP Hotel Booking WordPress plugin before 2.0.8 does not have authorisation and CSRF checks, as well as does not esca
SQL injection in the WP Hotel Booking WordPress plugin before 2.3.2 allows users holding plugin-specific booking-managem
Missing authorization controls in the WP Hotel Booking WordPress plugin (all versions before 2.3.1) expose sensitive hos
Reflected Cross-Site Scripting in the WP Hotel Booking WordPress plugin (ThimPress) through version 2.3.2 enables unauth
The WP Hotel Booking WordPress plugin before 2.0.8 does not have proper authorisation when deleting a package, allowing
The WP Hotel Booking WordPress plugin before 2.0.8 does not have authorisation and CSRF checks, as well as does not ensu
The WP Hotel Booking plugin for WordPress is vulnerable to arbitrary file uploads due to missing file type validation in
Path Traversal: '.../...//' vulnerability in ThimPress WP Hotel Booking wp-hotel-booking allows PHP Local File Inclusion
Missing Authorization vulnerability in ThimPress WP Hotel Booking.0.9.2. Rated medium severity (CVSS 6.5), this vulnerab
Reflected cross-site scripting in the WP Hotel Booking WordPress plugin (all versions up to and including 2.3.1) permits
Payment bypass in WP Hotel Booking (WordPress plugin, all versions ≤2.3.1) allows unauthenticated attackers to mark arbi
EUVD-2026-48511
GHSA-3cx8-75px-m35q
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB