CVE-2026-9721: Book a Room Event Calendar WordPress Plugin CSRF Vulnerability
The Book a Room Event Calendar WordPress plugin fails to protect its settings page against Cross-Site Request Forgery (CSRF) attacks. An attacker can craft a malicious webpage or email that, when clicked by a site administrator, silently changes critical plugin configuration—including database host, credentials, encryption keys, and registration URLs—without the administrator's knowledge or consent. All versions up to 1.9 are affected. The vulnerability requires social engineering (tricking an admin to click a link) but carries no additional barriers once that click happens.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 4.3 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
- Weaknesses (CWE)
- CWE-352
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-06-25
NVD description (verbatim)
The Book a Room Event Calendar plugin for WordPress is vulnerable to Cross-Site Request Forgery in all versions up to, and including, 1.9. This is due to missing or incorrect nonce validation on the settings_form()/update_settings() functionality. The plugin's options page handler dispatches on the 'action' POST parameter and calls update_settings(), which persists plugin configuration (including the external database host, username, password, prefix, database name, encryption key, and registration page URL) via update_option(), without ever generating a nonce field in the settings form or verifying one (no wp_nonce_field(), check_admin_referer(), or wp_verify_nonce() exists anywhere in the plugin). This makes it possible for unauthenticated attackers to modify the plugin's database connection settings via a forged request granted they can trick a site administrator into performing an action such as clicking on a link.
4 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The plugin's settings_form()/update_settings() functions lack nonce validation entirely. The options page handler dispatches on the 'action' POST parameter and immediately calls update_settings(), which persists configuration via update_option(). No wp_nonce_field() is rendered in the form, and no wp_verify_nonce() or check_admin_referer() call validates incoming requests. This violates WordPress security best practices and enables unauthenticated CSRF attacks. CWE-352 (Cross-Site Request Forgery) classification applies. The CVSS 3.1 score of 4.3 (MEDIUM) reflects network accessibility, low attack complexity, and integrity impact limited to configuration changes rather than data exfiltration or availability disruption.
Business impact
An attacker can redirect your WordPress site's database connections to an attacker-controlled server, harvest credentials logged in transit, inject malicious configuration, or break site functionality by pointing to non-existent hosts. If encryption keys are modified, encrypted data may become inaccessible. Registration page URLs can be replaced with phishing sites. The attack is difficult to detect in real time and may persist until an administrator reviews plugin settings. Reputational and compliance risks follow if user data is compromised through credential theft.
Affected systems
Any WordPress installation running Book a Room Event Calendar version 1.9 or earlier is vulnerable. The plugin must be active, and a site administrator must visit a malicious link or page crafted by an attacker. Multisite WordPress installations are also at risk if administrators are targeted.
Exploitability
Exploitability is moderate. An attacker must craft a forged request (typically an HTML form or JavaScript) and socially engineer a site administrator into clicking or submitting it while logged into WordPress. No additional authentication bypass is needed; the administrator's existing session provides the required privilege. Automated exploitation is not practical, but the attack is reliable once the admin is compromised.
Remediation
Update Book a Room Event Calendar to a patched version that implements proper nonce validation (verify against the vendor's advisory for the exact version number). If an update is not available, temporarily deactivate the plugin. Audit your site's database connection settings and encryption keys in the plugin configuration to detect unauthorized changes. Review WordPress admin access logs for suspicious activity.
Patch guidance
Monitor the plugin's official repository or the vendor's security advisory for a released patch. Apply the update as soon as it is available. Before updating, take a full site backup. After updating, verify that your plugin settings remain as expected and test event calendar functionality. If the vendor has not yet released a patch, consider switching to an alternative event calendar plugin with stronger security practices.
Detection guidance
Monitor WordPress admin user login logs for unusual access patterns, particularly outside business hours or from unexpected geographic locations. Enable WordPress activity logging (via a security plugin such as Wordfence or Sucuri) to capture POST requests to the plugin's settings page. Periodically audit the Book a Room Event Calendar settings (database host, username, encryption key, registration URL) for unauthorized changes. Inspect WordPress HTTP access logs for forged requests with POST parameters targeting the plugin's settings handler; look for requests lacking expected referrer information or originating from external sites.
Why prioritize this
Although the CVSS score is MEDIUM (4.3), prioritize this vulnerability if your organization relies on the event calendar for critical business processes or if the site processes sensitive user registration data. The reliance on social engineering reduces urgency compared to zero-click exploits, but the potential for silent database credential theft and configuration sabotage warrants prompt patching. If the plugin is used only for non-critical event scheduling and not actively maintained, lower priority is acceptable while you plan a migration to a more secure alternative.
Risk score, explained
CVSS 3.1 score of 4.3 reflects: Attack Vector = Network (accessible without internal access), Attack Complexity = Low (no special tools or conditions required), Privileges Required = None (unauthenticated attacker can craft the request), User Interaction = Required (admin must click the link), Scope = Unchanged, and Integrity Impact = Low (configuration modification, not data exfiltration or system destruction). Confidentiality and Availability impacts are None because the attacker cannot read sensitive data or disable the site outright—only change settings. This elevates the score above Low but keeps it below High.
Frequently asked questions
Do I need to click a link in an email, or can an attacker exploit this automatically?
You must click a link or visit a malicious webpage. The attacker cannot exploit this silently in the background. However, social engineering is effective; a phishing email claiming to be from your hosting provider or plugin vendor could be convincing.
If my plugin gets updated, do I need to change my database password?
Yes. If you suspect the vulnerability was exploited (e.g., if you notice unexpected settings changes), rotate your database credentials immediately. If there is no evidence of unauthorized access, a password change is still recommended as a precaution.
Can this vulnerability lead to ransomware or a data breach?
Indirectly, yes. An attacker who modifies the database host setting could redirect connections to a server under their control, allowing them to harvest credentials or inject malware. However, the vulnerability itself does not provide direct access to data—it requires a follow-up attack. This is why the CVSS score is MEDIUM rather than CRITICAL.
What if the plugin vendor does not release a patch?
Deactivate and remove the plugin. Switch to a well-maintained alternative event calendar solution. If you cannot replace it immediately, disable the plugin until a patch is released or a secure alternative is in place.
This analysis is provided for informational purposes and reflects publicly available vulnerability data as of the publication date. SEC.co does not provide exploit code or detailed weaponization guidance. Organizations should verify patch availability and vendor advisories before applying remediation steps. Timelines, affected versions, and patch status may change; always consult the official WordPress plugin repository or vendor security advisory for the most current information. This assessment does not constitute legal or compliance advice. Consult your security team and compliance officers regarding regulatory obligations specific to your industry and data classification. Source: NVD (public-domain), retrieved 2026-07-30. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2016-20067MEDIUMWordPress CP Polls CSRF Vulnerability
- CVE-2016-20074MEDIUMWordPress Lazy Content Slider CSRF Vulnerability – Patch & Detection Guide
- CVE-2016-20083MEDIUMWordPress More Fields Plugin CSRF Vulnerability – Exploitation, Remediation & Detection
- CVE-2018-25387MEDIUMHaPe PKH 1.1 Cross-Site Request Forgery (CSRF) Admin Password Reset
- CVE-2018-25397MEDIUMCSRF Vulnerability in PHP-SHOP 1.0 – Admin Account Injection
- CVE-2018-25435MEDIUMZeusCart 4.0 CSRF Vulnerability – Account Deactivation Risk
- CVE-2022-44630MEDIUMYITH WooCommerce Product Slider Carousel CSRF Vulnerability
- CVE-2022-47150MEDIUMCSRF Vulnerability in WooCommerce Conversion Tracking Plugin – Patch Guidance