CVE-2024-4444
📋 TL;DR
This vulnerability allows unauthenticated attackers to bypass user registration controls in LearnPress WordPress LMS Plugin, enabling them to create accounts with default roles even when registration is disabled. It affects WordPress sites using LearnPress plugin versions up to 4.2.6.5.
💻 Affected Systems
- LearnPress - WordPress LMS Plugin
📦 What is this software?
Learnpress by Thimpress
⚠️ Risk & Real-World Impact
Worst Case
Attackers create administrator accounts if default role is set to admin, gaining full control of the WordPress site.
Likely Case
Attackers create subscriber/author accounts to post spam, access restricted content, or use as foothold for further attacks.
If Mitigated
If default role is set to low-privilege and registration monitoring is enabled, impact is limited to unwanted user accounts.
🎯 Exploit Status
Exploitation requires sending crafted requests to the checkout endpoint without authentication.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 4.2.6.6 or later
Vendor Advisory: https://plugins.trac.wordpress.org/changeset/3082204/
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find LearnPress plugin. 4. Click 'Update Now' if available. 5. Alternatively, download latest version from WordPress plugin repository and manually update.
🔧 Temporary Workarounds
Disable LearnPress Checkout
allTemporarily disable LearnPress checkout functionality to prevent exploitation.
Add to wp-config.php: define('LP_DISABLE_CHECKOUT', true);
Web Application Firewall Rule
allBlock requests to vulnerable checkout endpoint.
WAF rule to block: POST requests to /checkout containing 'create_account' parameter
🧯 If You Can't Patch
- Set default user role to lowest possible privilege (subscriber)
- Implement rate limiting on checkout endpoint and monitor for suspicious registration attempts
🔍 How to Verify
Check if Vulnerable:
Check LearnPress plugin version in WordPress admin > Plugins > Installed Plugins
Check Version:
wp plugin list --name=learnpress --field=version
Verify Fix Applied:
Verify version is 4.2.6.6 or higher and test registration with disabled registration setting
📡 Detection & Monitoring
Log Indicators:
- Multiple user registrations from same IP, registrations when registration is disabled, POST requests to /checkout with create_account parameter
Network Indicators:
- Unusual POST requests to checkout endpoint from unauthenticated sources
SIEM Query:
source="wordpress" AND (uri_path="/checkout" OR uri_path="/wp-json/lp/v1/checkout") AND http_method="POST" AND user_agent!="WordPress/*"
🔗 References
- https://inky-knuckle-2c2.notion.site/Improper-Authentication-in-checkout-leads-privilege-escalation-of-unauthenticated-to-create-accoun-09da24a043884219a891dd1a0fc01af6
- https://plugins.trac.wordpress.org/browser/learnpress/tags/4.2.6.5/inc/class-lp-checkout.php#L79
- https://plugins.trac.wordpress.org/changeset/3082204/
- https://www.wordfence.com/threat-intel/vulnerabilities/id/c9e1410f-10c9-4654-8b61-cfcdde696da7?source=cve
- https://inky-knuckle-2c2.notion.site/Improper-Authentication-in-checkout-leads-privilege-escalation-of-unauthenticated-to-create-accoun-09da24a043884219a891dd1a0fc01af6
- https://plugins.trac.wordpress.org/browser/learnpress/tags/4.2.6.5/inc/class-lp-checkout.php#L79
- https://plugins.trac.wordpress.org/changeset/3082204/
- https://www.wordfence.com/threat-intel/vulnerabilities/id/c9e1410f-10c9-4654-8b61-cfcdde696da7?source=cve