CVE-2025-26910 Overview
CVE-2025-26910 is a Cross-Site Request Forgery (CSRF) vulnerability in the Iqonic Design WPBookit WordPress plugin. The flaw affects all versions up to and including 1.0.1. Attackers can leverage this weakness to trigger Stored Cross-Site Scripting (XSS) when an authenticated user visits a malicious page. The issue is tracked under CWE-352: Cross-Site Request Forgery. Successful exploitation requires user interaction, but no authentication or elevated privileges on the attacker's side. Once malicious scripts are stored, they execute in the browser context of any user viewing the affected content.
Critical Impact
Attackers can inject persistent JavaScript into WPBookit through forged state-changing requests, enabling session theft, account takeover, and defacement of WordPress sites.
Affected Products
- Iqonic Design WPBookit plugin for WordPress
- WPBookit versions from n/a through 1.0.1 (inclusive)
- WordPress sites running the free edition of WPBookit
Discovery Timeline
- 2025-03-10 - CVE-2025-26910 published to NVD
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-26910
Vulnerability Analysis
The vulnerability combines two web application weaknesses. First, WPBookit fails to validate the origin of state-changing HTTP requests. Second, input handled by those requests is not sanitized before being stored and rendered. An attacker crafts a malicious web page containing a forged request to a vulnerable WPBookit endpoint. When an authenticated WordPress administrator or privileged user visits the page, the browser automatically submits the request with valid session cookies. The forged request writes attacker-controlled payloads into plugin data stores. The stored payload later executes as JavaScript when a user loads the affected view.
Root Cause
The root cause is the absence of anti-CSRF tokens (WordPress nonces) on sensitive endpoints, combined with insufficient output encoding of user-supplied data. WordPress provides wp_nonce_field() and check_admin_referer() for CSRF protection, but WPBookit endpoints up to version 1.0.1 do not enforce these checks consistently. Data written through these endpoints is later rendered without escaping via functions such as esc_html() or esc_attr(), allowing scripts to persist and execute.
Attack Vector
Exploitation occurs over the network and requires user interaction. The attacker hosts a page containing an auto-submitting HTML form or fetch() call targeting a vulnerable WPBookit action URL. The victim, already authenticated to the WordPress admin panel, visits the page through phishing, a comment link, or a compromised site. The browser submits the request with the victim's cookies, and the plugin persists attacker-controlled markup. Any subsequent page load rendering the tainted field executes the injected script, giving the attacker access to session tokens, administrative actions, and content modification within the victim's privilege scope.
Detection Methods for CVE-2025-26910
Indicators of Compromise
- Unexpected <script>, <iframe>, or event handler attributes stored within WPBookit configuration fields, booking descriptions, or settings tables in the WordPress database.
- Administrator sessions producing outbound requests to unfamiliar domains shortly after visiting external links.
- New or modified WordPress user accounts with elevated roles created without corresponding admin activity in audit logs.
Detection Strategies
- Review the wp_options and WPBookit custom tables for HTML tags or JavaScript strings in fields that should contain plain text.
- Inspect web server access logs for POST requests to WPBookit admin endpoints with Referer headers pointing to external, non-admin origins.
- Scan rendered pages with a headless browser or DOM sanitizer to flag scripts that did not originate from the site's theme or trusted plugins.
Monitoring Recommendations
- Enable WordPress activity logging to capture option updates, plugin setting changes, and content modifications tied to WPBookit.
- Alert on administrator accounts loading admin URLs from unusual Referer values or during off-hours sessions.
- Monitor outbound traffic from browsers during administrative sessions for connections to unrecognized JavaScript hosts or exfiltration endpoints.
How to Mitigate CVE-2025-26910
Immediate Actions Required
- Update the WPBookit plugin to a version later than 1.0.1 as soon as the vendor releases a patched build.
- Deactivate and remove WPBookit if a patched version is not yet available and the plugin is not business-critical.
- Force password resets and invalidate active sessions for all WordPress administrator accounts that may have visited untrusted links.
- Audit WPBookit-managed content and settings for injected scripts and remove any unauthorized entries.
Patch Information
The advisory covers WPBookit through version 1.0.1, with no fixed version identified in the referenced record. Administrators should consult the Patchstack WPBookit Plugin CSRF Vulnerability advisory for updates and follow Iqonic Design's plugin changelog for a release addressing CWE-352.
Workarounds
- Restrict access to /wp-admin/ using IP allowlists or a Web Application Firewall until a patch is applied.
- Deploy a WAF rule that blocks cross-origin POST requests to WPBookit admin endpoints lacking a valid Referer from the site's own domain.
- Require administrators to use a separate browser profile for WordPress administration to limit CSRF exposure from general web browsing.
- Enforce a strict Content Security Policy (CSP) that disallows inline scripts to reduce the impact of stored XSS payloads.
# Example WordPress CLI commands to disable the vulnerable plugin
wp plugin deactivate wpbookit
wp plugin delete wpbookit
# Verify no residual WPBookit options remain in the database
wp option list --search='wpbookit*'
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

