CVE-2025-11372
📋 TL;DR
This vulnerability in the LearnPress WordPress LMS plugin allows unauthenticated attackers to perform destructive database operations via REST API endpoints. Attackers can drop indexes on any table (including WordPress core tables), create duplicate configuration entries, and degrade site performance. All WordPress sites using LearnPress versions up to 4.2.9.2 are affected.
💻 Affected Systems
- LearnPress - WordPress LMS Plugin
⚠️ Manual Verification Required
This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.
Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).
🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.
- Review the CVE details at NVD
- Check vendor security advisories for your specific version
- Test if the vulnerability is exploitable in your environment
- Consider updating to the latest version as a precaution
⚠️ Risk & Real-World Impact
Worst Case
Complete site compromise through database corruption, loss of critical WordPress configuration data, and permanent site unavailability requiring full database restoration.
Likely Case
Site performance degradation through index removal, configuration corruption causing plugin/WordPress malfunctions, and potential data integrity issues.
If Mitigated
No impact if proper authentication and authorization controls are in place to restrict access to admin tools endpoints.
🎯 Exploit Status
Exploitation requires sending HTTP requests to specific REST endpoints but no authentication is needed. Attackers need to know table names, which can be discovered through WordPress conventions.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Versions after 4.2.9.2
Vendor Advisory: https://github.com/LearnPress/learnpress/commit/cf940a437539a803e49136bdff7a53e1f2b2ca44
Restart Required: No
Instructions:
1. Log into WordPress admin dashboard. 2. Navigate to Plugins > Installed Plugins. 3. Find LearnPress plugin. 4. Click 'Update Now' if update available. 5. If no update available, download latest version from WordPress.org and manually update.
🔧 Temporary Workarounds
Block vulnerable REST endpoints
ApacheUse web application firewall or .htaccess to block access to the vulnerable /wp-json/lp/v1/admin/tools/ endpoints
# Add to .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^wp-json/lp/v1/admin/tools/ - [F,L]
</IfModule>
Disable LearnPress plugin
WordPress CLITemporarily disable the LearnPress plugin until patched
wp plugin deactivate learnpress
🧯 If You Can't Patch
- Implement strict network access controls to block external access to /wp-json/lp/v1/admin/tools/ endpoints
- Enable database backup automation and monitor for unexpected index drops or configuration changes
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin dashboard > Plugins > LearnPress. If version is 4.2.9.2 or lower, you are vulnerable.
Check Version:
wp plugin get learnpress --field=version
Verify Fix Applied:
After updating, verify LearnPress version is higher than 4.2.9.2. Test that /wp-json/lp/v1/admin/tools/create-indexs endpoint returns proper authentication error when accessed without admin privileges.
📡 Detection & Monitoring
Log Indicators:
- HTTP 200 responses to POST /wp-json/lp/v1/admin/tools/create-indexs from unauthenticated IPs
- Database logs showing unexpected DROP INDEX or CREATE INDEX operations
Network Indicators:
- POST requests to /wp-json/lp/v1/admin/tools/* endpoints from external IPs without authentication headers
SIEM Query:
source="web_server" AND (uri_path="/wp-json/lp/v1/admin/tools/create-indexs" OR uri_path="/wp-json/lp/v1/admin/tools/*") AND http_method="POST" AND NOT (user_agent contains "wp-admin" OR http_referer contains "wp-admin")
🔗 References
- https://github.com/LearnPress/learnpress/commit/cf940a437539a803e49136bdff7a53e1f2b2ca44
- https://plugins.trac.wordpress.org/browser/learnpress/trunk/inc/Databases/class-lp-db.php#L291
- https://plugins.trac.wordpress.org/browser/learnpress/trunk/inc/Databases/class-lp-db.php#L316
- https://plugins.trac.wordpress.org/browser/learnpress/trunk/inc/rest-api/v1/admin/class-lp-admin-rest-tools-controller.php#L101
- https://plugins.trac.wordpress.org/browser/learnpress/trunk/inc/rest-api/v1/admin/class-lp-admin-rest-tools-controller.php#L145
- https://plugins.trac.wordpress.org/browser/learnpress/trunk/inc/rest-api/v1/admin/class-lp-admin-rest-tools-controller.php#L30
- https://www.wordfence.com/threat-intel/vulnerabilities/id/d2365e92-d70d-47fa-9abe-7cbdd6336f39?source=cve