CVE-2024-3895

8.8 HIGH

📋 TL;DR

The WP Datepicker WordPress plugin has an authorization vulnerability that allows authenticated users with subscriber-level access or higher to modify arbitrary WordPress options. This can lead to privilege escalation attacks where attackers gain administrative control. All WordPress sites using WP Datepicker versions up to 2.1.0 are affected.

💻 Affected Systems

Products:
  • WP Datepicker WordPress Plugin
Versions: All versions up to and including 2.1.0
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress with the WP Datepicker plugin installed. Partial patches in 2.0.9 and 2.1.0 were insufficient.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers gain full administrative control of the WordPress site, allowing them to install backdoors, steal data, deface the site, or use the server for malicious activities.

🟠

Likely Case

Attackers escalate privileges to administrator level and modify site settings, inject malicious code, or create new admin accounts for persistence.

🟢

If Mitigated

With proper access controls and monitoring, unauthorized changes are detected and reverted before significant damage occurs.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access (subscriber role or higher). The vulnerability is straightforward to exploit once authenticated.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.1.1

Vendor Advisory: https://plugins.trac.wordpress.org/changeset/3073525/wp-datepicker/trunk/inc/functions_inner.php

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find WP Datepicker and click 'Update Now' if available. 4. If automatic update fails, download version 2.1.1 from WordPress.org and manually replace plugin files.

🔧 Temporary Workarounds

Disable WP Datepicker Plugin

all

Temporarily deactivate the vulnerable plugin until patched

wp plugin deactivate wp-datepicker

Restrict User Registration

all

Disable new user registration to prevent attackers from obtaining subscriber accounts

Update WordPress Settings → General → Membership to uncheck 'Anyone can register'

🧯 If You Can't Patch

  • Implement strict access controls and monitor user activity logs for unauthorized option changes
  • Use web application firewall rules to block requests to vulnerable AJAX endpoints

🔍 How to Verify

Check if Vulnerable:

Check WP Datepicker plugin version in WordPress admin under Plugins → Installed Plugins

Check Version:

wp plugin get wp-datepicker --field=version

Verify Fix Applied:

Confirm WP Datepicker version is 2.1.1 or higher after update

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /wp-admin/admin-ajax.php with action=wpdp_add_new_datepicker
  • Unexpected changes to WordPress options table
  • User role escalation events

Network Indicators:

  • HTTP requests to admin-ajax.php with wpdp_add_new_datepicker parameter from non-admin users

SIEM Query:

source="wordpress.log" AND "admin-ajax.php" AND "wpdp_add_new_datepicker"

🔗 References

📤 Share & Export