CVE-2025-11923

8.8 HIGH

📋 TL;DR

The LifterLMS WordPress plugin contains a privilege escalation vulnerability that allows authenticated users with student-level access or higher to elevate their privileges to administrator. Attackers can exploit this by sending crafted REST API requests to modify their own user role. This affects all WordPress sites running vulnerable versions of the LifterLMS plugin.

💻 Affected Systems

Products:
  • LifterLMS WordPress Plugin
Versions: 3.5.3-3.41.2, 4.0.0-4.21.3, 5.0.0-5.10.0, 6.0.0-6.11.0, 7.0.0-7.8.7, 8.0.0-8.0.7, 9.0.0-9.0.7, 9.1.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress REST API to be enabled (default). Affects all WordPress installations using vulnerable LifterLMS versions.

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

Complete site compromise where any authenticated user becomes administrator, enabling data theft, malware installation, and full control over the WordPress installation.

🟠

Likely Case

Attackers with student accounts escalate to administrator privileges, potentially modifying content, stealing sensitive data, or installing backdoors.

🟢

If Mitigated

Limited impact if proper network segmentation, least privilege access, and monitoring are in place to detect and block privilege escalation attempts.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access but is straightforward via REST API calls. Public proof-of-concept code is available in security advisories.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Versions after those listed as vulnerable

Vendor Advisory: https://wordpress.org/plugins/lifterlms/#developers

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find LifterLMS and check if update is available. 4. Click 'Update Now' to install the latest version. 5. Verify update completes successfully.

🔧 Temporary Workarounds

Disable REST API for unauthenticated users

all

Restrict REST API access to authenticated users only to reduce attack surface

Add to wp-config.php: define('REST_API_AUTH', true);

Temporarily disable LifterLMS plugin

linux

Disable the vulnerable plugin until patching is possible

wp plugin deactivate lifterlms

🧯 If You Can't Patch

  • Implement strict network access controls to limit REST API access to trusted IPs only
  • Enable detailed logging of user role changes and monitor for suspicious privilege escalation attempts

🔍 How to Verify

Check if Vulnerable:

Check LifterLMS plugin version in WordPress admin under Plugins → Installed Plugins

Check Version:

wp plugin get lifterlms --field=version

Verify Fix Applied:

Verify plugin version is not in the affected ranges listed above

📡 Detection & Monitoring

Log Indicators:

  • REST API requests to /wp-json/llms/v1/students/* or /wp-json/llms/v1/users/* with role modification parameters
  • User role changes from student/instructor to administrator

Network Indicators:

  • POST requests to LifterLMS REST endpoints with role parameter modifications

SIEM Query:

source="wordpress" AND (uri_path="/wp-json/llms/v1/students/*" OR uri_path="/wp-json/llms/v1/users/*") AND http_method="POST" AND request_body CONTAINS "role"

🔗 References

📤 Share & Export