CVE-2024-9306

4.4 MEDIUM

📋 TL;DR

The WP Booking Calendar plugin for WordPress has a stored cross-site scripting (XSS) vulnerability that allows authenticated attackers with administrator permissions to inject malicious scripts into pages. This affects multi-site WordPress installations and sites where unfiltered_html is disabled. The injected scripts execute whenever users access compromised pages.

💻 Affected Systems

Products:
  • WP Booking Calendar WordPress Plugin
Versions: All versions up to and including 10.6
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ✅ No
Notes: Only affects WordPress multi-site installations and installations where unfiltered_html capability is disabled. Single-site WordPress with default settings is not vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal administrator credentials, deface websites, redirect users to malicious sites, or install backdoors for persistent access.

🟠

Likely Case

Attackers with admin access inject malicious scripts to steal session cookies or user data from visitors accessing affected pages.

🟢

If Mitigated

With proper user access controls and unfiltered_html enabled, the vulnerability impact is limited to administrators who already have full site control.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Requires authenticated administrator access or lower-level users granted plugin management permissions. Exploitation involves injecting scripts through admin settings.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 10.7 and later

Vendor Advisory: https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3161259%40booking&new=3158531%40booking&sfp_email=&sfph_mail=

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find WP Booking Calendar and click 'Update Now'. 4. Verify version is 10.7 or higher.

🔧 Temporary Workarounds

Enable unfiltered_html capability

all

Enable the unfiltered_html capability for administrators to prevent exploitation in single-site installations

Add define('DISALLOW_UNFILTERED_HTML', false); to wp-config.php

Restrict plugin management permissions

all

Remove plugin management permissions from non-administrator users

Use WordPress role management plugins or custom code to revoke 'manage_options' capability from non-admin roles

🧯 If You Can't Patch

  • Disable or remove the WP Booking Calendar plugin entirely
  • Implement strict access controls to ensure only trusted administrators can manage plugin settings

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins for WP Booking Calendar version. If version is 10.6 or lower, the system is vulnerable.

Check Version:

wp plugin list --name='booking' --field=version (if WP-CLI installed) or check WordPress admin plugins page

Verify Fix Applied:

After updating, verify WP Booking Calendar version shows 10.7 or higher in WordPress admin plugins page.

📡 Detection & Monitoring

Log Indicators:

  • Unusual admin user activity modifying plugin settings
  • Suspicious script tags in booking calendar settings or page content

Network Indicators:

  • Unexpected external script loads from booking calendar pages
  • Suspicious redirects from calendar pages

SIEM Query:

source="wordpress" AND (event="plugin_updated" AND plugin_name="booking" AND old_version<="10.6") OR (event="option_update" AND option_name LIKE "%booking%")

🔗 References

📤 Share & Export