Executive Summary
A critical privilege escalation vulnerability (CVE-2025-13618) has been discovered in the Mentoring plugin for WordPress, affecting all versions up to and including 1.2.8. The flaw carries a CVSS score of 9.8 — the highest possible severity tier.
The vulnerability allows an unauthenticated attacker to register a new WordPress account with any user role, including administrator, simply by manipulating the registration request. The root cause is that the mentoring_process_registration() function fails to restrict which roles a registrant can self-assign during sign-up.
Any WordPress site running the Mentoring plugin version 1.2.8 or earlier with open user registration should be treated as actively at risk until patched or the plugin is disabled.
Vulnerability Overview
| Attribute | Value |
|---|---|
| CVE ID | CVE-2025-13618 |
| CVSS Score | 9.8 (Critical) |
| CWE | CWE-269 — Improper Privilege Management |
| Type | Privilege Escalation / Account Takeover |
| Attack Vector | Network |
| Privileges Required | None (unauthenticated) |
| User Interaction | None |
| Scope | Changed |
| Confidentiality Impact | High |
| Integrity Impact | High |
| Availability Impact | High |
| Patch Available | Check vendor — update beyond 1.2.8 |
Affected Versions
| Plugin | Affected Versions | Fixed Version |
|---|---|---|
| Mentoring for WordPress | <= 1.2.8 (all versions) | 1.2.9+ (if available) |
Technical Analysis
Root Cause
The Mentoring plugin provides a mentoring program management platform for WordPress, allowing users to register as mentors or mentees. During the registration process, the mentoring_process_registration() function handles new account creation.
The critical flaw: the function does not validate or restrict the role parameter submitted in the registration form. An attacker can supply an arbitrary role — including administrator — and the plugin will honour that value, creating a WordPress account with full administrative privileges.
This is a classic mass assignment / role restriction failure in a self-registration flow.
Attack Flow
1. Attacker locates a WordPress site running Mentoring plugin <= 1.2.8
2. Attacker confirms open user registration is enabled (common on mentoring platforms)
3. Attacker crafts a registration POST request:
- username: attacker_admin
- email: attacker@example.com
- password: [chosen password]
- role: administrator ← plugin accepts this without validation
4. Plugin calls mentoring_process_registration() — processes the role as supplied
5. WordPress account is created with administrator role
6. Attacker logs in with full site controlExploitation Conditions
- Mentoring plugin version 1.2.8 or earlier must be installed and active
- The registration form must be accessible (typical for mentoring platforms by design)
- No authentication is required — this is a fully unauthenticated attack path
- The vulnerability is exploitable remotely with a single POST request
Impact Assessment
| Impact Area | Description |
|---|---|
| Full Admin Account Creation | Attacker gains administrator role during registration |
| Site Takeover | Administrator access enables complete WordPress control |
| Data Exfiltration | Access to all user data, mentoring records, and stored content |
| Malware Installation | Admin can install malicious plugins or edit theme PHP files |
| Persistent Backdoor | New admin accounts survive any subsequent plugin updates |
| Content Manipulation | Full ability to modify or delete all site content |
| Lateral Movement | Hosting pivot potential if site is on shared infrastructure |
Immediate Remediation
Step 1: Update or Disable the Mentoring Plugin
Check the WordPress plugin repository or vendor site for a patched version beyond 1.2.8. If no patch is available:
# Deactivate via WP-CLI
wp plugin deactivate mentoring
# Verify deactivation
wp plugin status mentoringOr navigate to WordPress Admin > Plugins > Installed Plugins and deactivate the Mentoring plugin.
Step 2: Audit for Unauthorized Admin Accounts
# List all administrator accounts — look for unexpected entries
wp user list --role=administrator --fields=user_login,user_email,user_registered
# Check recently registered accounts (last 7 days)
wp db query "SELECT user_login, user_email, user_registered FROM wp_users
WHERE user_registered > DATE_SUB(NOW(), INTERVAL 7 DAY)
ORDER BY user_registered DESC;"Remove any administrator accounts that were not intentionally created.
Step 3: Harden WordPress Registration
If registration must remain open, disable it temporarily while patching:
- Navigate to WordPress Admin > Settings > General
- Uncheck "Anyone can register"
- Set "New User Default Role" to Subscriber as a baseline
Step 4: Force Admin Password Rotation
# Rotate all admin passwords as a precaution
wp user list --role=administrator --format=ids | \
xargs -I {} wp user update {} --user_pass="$(openssl rand -base64 24)"
# Regenerate WordPress security keys
wp config shuffle-salts
# Invalidate all active sessions
wp db query "DELETE FROM wp_usermeta WHERE meta_key = 'session_tokens';"Detection Indicators
| Indicator | Description |
|---|---|
| New administrator accounts with recent registration dates | Likely attacker-created via exploit |
| Administrator registrations from unfamiliar IPs | Exploitation attempt in server access logs |
| Unexpected plugin or theme modifications | Post-exploitation activity by newly-created admin |
| New admin-level users in the Mentoring plugin dashboard | Attackers masquerading as mentors/admins |
| PHP file changes in wp-content/ | Backdoor installation after privilege escalation |
Post-Remediation Checklist
- Update the Mentoring plugin to a patched version beyond 1.2.8
- Deactivate the plugin entirely if no patch is available
- Audit all administrator accounts and remove unauthorized entries
- Disable open user registration until the patch is confirmed applied
- Reset all admin passwords and regenerate WordPress secret keys
- Invalidate all active sessions to force re-authentication
- Scan wp-content/ for webshells, modified plugin files, or backdoors
- Review access logs for evidence of prior exploitation attempts
- Enable two-factor authentication on all administrator accounts
- Deploy a WordPress WAF (Wordfence, Sucuri, Cloudflare) with hardening rules
- Monitor user registrations — alert on any new accounts with elevated roles