Severity by source
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
Injection is unauthenticated and network-accessible (PR:N, AV:N), but payload execution requires an admin to view the order (UI:R); scope changes to admin browser context (S:C).
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
Lifecycle Timeline
2DescriptionCVE.org
The VikRentItems - Flexible Rental Management System plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the customer email field of the booking checkout form in versions up to, and including, 1.2.1. This is due to insufficient input sanitization and output escaping in the saveorder() function, which stores the raw email value via VikRequest::getString() (applying only sanitize_text_field(), which does not neutralize HTML attribute-breaking characters such as double quotes), and in the editorder template which echoes the stored custmail value into an HTML input element's value attribute without esc_attr(). This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
AnalysisAI
Stored Cross-Site Scripting in VikRentItems - Flexible Rental Management System (WordPress plugin, versions up to and including 1.2.1) allows unauthenticated attackers to inject persistent JavaScript via the customer email field of the public booking checkout form. The payload is stored in the database through the saveorder() function and executes in the browser of any authenticated user - including administrators - who subsequently views the affected order record in the WordPress admin panel. No public exploit or CISA KEV listing has been identified at the time of analysis, but the unauthenticated injection vector and admin-context execution make this a meaningful privilege escalation path on affected sites.
Technical ContextAI
The vulnerability resides in the VikRentItems WordPress plugin (vendor: e4jvikwp; CPE: cpe:2.3:a:e4jvikwp:vikrentitems_flexible_rental_management_system:*:*:*:*:*:*:*:*), a rental management solution extending the WordPress CMS. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation) manifesting in two compounding defects: first, the saveorder() function at site/controller.php:L389 reads the email value using VikRequest::getString(), which internally applies WordPress's sanitize_text_field() - a function designed to strip tags and normalize whitespace but explicitly NOT intended to neutralize HTML attribute-breaking characters such as the double-quote ("). Second, the stored custmail value is echoed directly into the value attribute of an HTML input element in the admin/views/editorder/tmpl/default.php template at L499 without applying WordPress's esc_attr() output-escaping function, which is the canonical defense for this exact context. The gap between the sanitization step and the output context is the classic stored XSS pattern: input is accepted as 'clean text' but rendered in an HTML attribute context that requires a stricter escaping contract.
RemediationAI
A fix has been committed to the plugin's trunk in the WordPress plugin repository (changeset 3617300 modifying admin/views/editorder/tmpl/default.php), applying proper output escaping in the editorder template. However, a released patched version number has not been independently confirmed from the available source data - update to the latest available version in the WordPress plugin repository and verify the fix is present. Site administrators should update through the WordPress admin dashboard (Plugins → Update) as soon as a patched release is available. If immediate upgrade is not possible, a compensating control is to restrict access to the booking checkout form (e.g., via web server rules or a WAF rule blocking double-quote characters in email submission fields) and limit access to the WordPress admin order-view pages to trusted IP ranges only - both measures reduce the injection surface and execution opportunity respectively. Note that IP-restricting the admin panel alone does not prevent payload storage; both injection and rendering must be addressed.
More in Wordpress Plugin
View allThe Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in
Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-53036
GHSA-3v9q-ch5p-9639