CVE-2024-12172

7.5 HIGH

📋 TL;DR

This vulnerability allows authenticated WordPress users with Subscriber-level access or higher to update arbitrary user metadata due to a missing capability check. Attackers can block administrators from accessing their sites by setting wp_capabilities to 0. All WordPress sites using the WP Courses LMS plugin up to version 3.2.21 are affected.

💻 Affected Systems

Products:
  • WP Courses LMS – Online Courses Builder, eLearning Courses, Courses Solution, Education Courses plugin for WordPress
Versions: All versions up to and including 3.2.21
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with the vulnerable plugin enabled. Any authenticated user (Subscriber role or higher) can exploit this vulnerability.

⚠️ 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.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Administrators are completely locked out of their WordPress sites, requiring database-level intervention to restore access, potentially leading to extended downtime and data loss.

🟠

Likely Case

Attackers with subscriber accounts modify administrator capabilities to disrupt site management, causing operational disruption and potential privilege escalation.

🟢

If Mitigated

With proper access controls and monitoring, impact is limited to temporary disruption that can be quickly detected and remediated.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access but is straightforward once an attacker has any WordPress user account. The vulnerability is publicly documented with technical details.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.2.22 or later

Vendor Advisory: https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3203679%40wp-courses&new=3203679%40wp-courses&sfp_email=&sfph_mail=

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'WP Courses LMS' plugin. 4. Click 'Update Now' if update is available. 5. Alternatively, download version 3.2.22+ from WordPress.org and manually update.

🔧 Temporary Workarounds

Disable vulnerable plugin

all

Temporarily deactivate the WP Courses LMS plugin until patched

wp plugin deactivate wp-courses

Restrict user registration

all

Disable new user registration to prevent attackers from obtaining 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 suspicious metadata modifications
  • Use web application firewall rules to block requests to the vulnerable wpc_update_user_meta_option() function

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel → Plugins → Installed Plugins for WP Courses LMS version. If version is 3.2.21 or lower, the system is vulnerable.

Check Version:

wp plugin get wp-courses --field=version

Verify Fix Applied:

Verify plugin version is 3.2.22 or higher in WordPress admin panel. Test that authenticated users cannot modify other users' metadata.

📡 Detection & Monitoring

Log Indicators:

  • Unusual user_meta updates in WordPress database logs
  • Multiple failed login attempts followed by successful subscriber login and metadata modifications
  • Administrator accounts suddenly losing capabilities

Network Indicators:

  • POST requests to /wp-admin/admin-ajax.php with action parameter containing 'wpc_update_user_meta_option'

SIEM Query:

source="wordpress_logs" action="user_meta_update" user_role="subscriber" target_user_role="administrator"

🔗 References

📤 Share & Export