CVE-2025-12099

7.2 HIGH

📋 TL;DR

This vulnerability allows authenticated WordPress administrators to inject PHP objects through the Academy LMS plugin's import_all_courses function. The impact depends on whether other plugins or themes with POP chains are installed. Only WordPress sites using vulnerable Academy LMS plugin versions are affected.

💻 Affected Systems

Products:
  • Academy LMS – WordPress LMS Plugin for Complete eLearning Solution
Versions: All versions up to and including 3.3.8
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with Academy LMS plugin and administrator-level access to exploit. Impact depends on presence of POP chains in other installed plugins/themes.

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

If combined with a POP chain from another plugin/theme, attackers could execute arbitrary code, delete files, or steal sensitive data, potentially leading to complete site compromise.

🟠

Likely Case

Limited impact since no POP chain exists in the vulnerable software itself; exploitation requires specific additional vulnerable components to be present on the target system.

🟢

If Mitigated

With proper access controls limiting administrator accounts and regular plugin updates, the risk is minimal as exploitation requires both vulnerable Academy LMS and another vulnerable component.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: NO
Unauthenticated Exploit: ✅ No
Complexity: HIGH

Exploitation requires administrator credentials and depends on finding compatible POP chains in other installed components, making reliable exploitation difficult.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.3.9 or later

Vendor Advisory: https://plugins.trac.wordpress.org/changeset/3390420/

Restart Required: No

Instructions:

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

🔧 Temporary Workarounds

Remove vulnerable function access

all

Disable or restrict access to the import_all_courses functionality

Edit wp-content/plugins/academy/includes/ajax/course.php and comment out or remove vulnerable code around line 815

🧯 If You Can't Patch

  • Restrict administrator accounts to only essential personnel and implement strong authentication
  • Audit and remove unnecessary plugins/themes that could provide POP chains for exploitation

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Academy LMS → Version number. If version is 3.3.8 or lower, you are vulnerable.

Check Version:

wp plugin get academy --field=version (if WP-CLI installed) or check WordPress admin interface

Verify Fix Applied:

After updating, verify Academy LMS plugin version shows 3.3.9 or higher in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • Unusual administrator activity, especially related to course imports
  • PHP errors related to unserialize() or object injection

Network Indicators:

  • POST requests to /wp-admin/admin-ajax.php with 'action=import_all_courses' parameter

SIEM Query:

source="wordpress.log" AND "import_all_courses" AND ("unserialize" OR "PHP object")

🔗 References

📤 Share & Export