Academy LMS (WordPress) unauthenticated password change leading to account takeover
CVE-2025-15521 is a privilege-escalation/account-takeover vulnerability in the Academy LMS – WordPress LMS Plugin for Complete eLearning Solution plugin affecting all versions up to and including 3.5.0. The plugin’s password update functionality does not properly validate the requesting user’s identity and relies solely on a publicly exposed WordPress nonce for authorization. As a result, an unauthenticated attacker can obtain/scrape the nonce and submit a request to change the password of an arbitrary user account, including administrator accounts, thereby taking over the account.
Are you exposed to this one?
Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.
Impact, mitigation & remediation
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
Impact
What an attacker gets, and what they’ve been doing with it.
Mitigation
If you can’t patch tonight, do this now.
Remediation
Patch, then assume compromise.
Exploits
1 valid exploit after Mallory filtered fakes, detection scripts, and README-only repos.
This repository contains a single operational Python exploit, CVE-2025-15521.py, plus a README and license. The exploit targets CVE-2025-15521 in the Academy LMS WordPress plugin up to version 3.5.0. Its purpose is unauthenticated account takeover via an insecure password reset flow that accepts a publicly exposed academy_nonce from course pages and a chosen user_id, allowing password reset without email verification or ownership checks. Repository structure is minimal: one Python script implements the exploit logic, README.md documents the vulnerability, workflow, and usage, and LICENSE contains restrictive redistribution terms. The Python script is interactive and prompts for a targets file, thread count, reset handler path, course path, maximum pages to scan, target user_id, new password, timeout, and output file. Core exploit capability: for each target site, it normalizes the WordPress base URL (including subdirectory installs), scans course-related pages to extract a valid reset nonce, submits a password reset request to the vulnerable handler for a chosen user_id, enumerates candidate usernames using WordPress author redirects and the REST API, then attempts login using the attacker-chosen password. It performs strict success validation by rejecting known login failures, requiring a wordpress_logged_in cookie, and confirming actual wp-admin access using admin UI markers rather than relying on HTTP status alone. Successful compromises are appended to an output file. The exploit is not just a detector; it actively changes account passwords and verifies administrative access. It is best classified as OPERATIONAL rather than a simple PoC because it includes a working exploitation chain and post-exploitation verification, though it is not part of a larger exploitation framework.
Recent activity
12 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
A critical vulnerability in Academy LMS that can be exploited to achieve an administrative account takeover.
An unauthenticated account takeover vulnerability in the Academy LMS WordPress plugin where a publicly exposed nonce is improperly used as authorization for password updates, enabling attackers to reset passwords (including admin) without authentication.
A privilege escalation / account takeover vulnerability in the Academy LMS WordPress plugin where insufficient identity validation and reliance on a publicly exposed nonce allows unauthenticated attackers to reset arbitrary users’ passwords (including administrators).
The version that knows your environment.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.