CVE-2025-15001 is a critical privilege-escalation vulnerability in the FS Registration Password plugin for WordPress affecting all versions up to and including 1.0.1. The flaw stems from improper validation of a user's identity before processing a password update, allowing an unauthenticated remote attacker to change the password of an arbitrary user account. Because the vulnerable logic does not adequately verify that the requester is authorized to perform the password change, an attacker can reset passwords for any targeted account, including administrator accounts, and then authenticate as that user. In practical terms, the issue is an account-takeover vulnerability that can directly lead to administrative compromise of the affected WordPress site.
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.
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
If you can’t patch tonight, do this now.
Patch, then assume compromise.
1 valid exploit after Mallory filtered fakes, detection scripts, and README-only repos.
This repository is a standalone Python exploit for CVE-2025-15001 targeting the WordPress Registration Password plugin (versions up to 1.0.1). It is not tied to a common exploit framework. The codebase is organized into a main CLI entry point (main.py), configuration/constants (config.py), modular exploitation stages under modules/, HTTP/session handling in utils/http_client.py, and validator tests under tests/. Primary capability: unauthenticated WordPress account takeover. The exploit detects whether the vulnerable plugin is present, assesses exploitability, enumerates candidate usernames, injects an attacker-chosen password reset key into the lost-password workflow, accesses the reset page with that known key, sets a new password for the victim account, and finally verifies login and wp-admin access. Repository structure and purpose: - main.py: CLI orchestration for check-only, enumeration, and full exploitation modes; supports target URL, username, custom password, custom reset key, proxy, and verbose output. - config.py: central constants including vulnerable versions, WordPress paths, marker names, default target, and password/reset-key generators. - modules/detector.py: multi-method plugin detection using plugin readme, registration page hidden marker, and frontend HTML clues; includes exploitability scoring logic. - modules/enumerator.py: user discovery via WordPress REST API, author archive redirects, and login error-based username confirmation. - modules/injector.py: sends the crafted lost-password request containing fs_is_password_for_registration=yes and pass1=<known_key>. - modules/takeover.py: uses the injected key to reach the reset form and submit a new password. - modules/verifier.py: validates successful login and checks admin panel access/cookies. - modules/validator.py: enums/messages for abort and exploitability decisions. - utils/http_client.py: requests-based session wrapper with retries, proxy support, randomized user agents, and TLS verification disabled. - tests/test_validator_properties.py: property-based tests for validation logic, not exploit execution. Notable network behavior and targets: the exploit interacts exclusively with WordPress web endpoints under the supplied base URL, especially /wp-content/plugins/registration-password/readme.txt, /wp-login.php with actions register/lostpassword/rp/resetpass, /wp-json/wp/v2/users, /?author=<id>, and /wp-admin/. It also supports optional traffic routing through a user-supplied proxy. The code includes a hardcoded promotional Telegram URL printed on success, but it is not used as part of exploitation. Overall, this is an operational exploit rather than a mere detector: it contains the full takeover chain and generates or accepts attacker-controlled credentials, but it is still a relatively simple standalone script rather than a heavily weaponized framework module.
8 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
An unauthenticated account takeover vulnerability in the FS Registration Password WordPress plugin that allows attackers to reset arbitrary users’ passwords, including administrators, enabling account compromise and follow-on shell upload.
A critical privilege escalation vulnerability in the FS Registration Password WordPress plugin (<= 1.0.1) allows unauthenticated attackers to take over arbitrary accounts, including administrators, by changing their passwords without proper identity validation.
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.