CVE-2025-13220
📋 TL;DR
This vulnerability allows authenticated WordPress users with Contributor-level access or higher to inject malicious JavaScript into pages using the Ultimate Member plugin's shortcodes. The injected scripts execute whenever other users view those pages, enabling persistent cross-site scripting attacks. All WordPress sites using Ultimate Member plugin versions up to 2.11.0 are affected.
💻 Affected Systems
- Ultimate Member – User Profile, Registration, Login, Member Directory, Content Restriction & Membership Plugin for WordPress
⚠️ Manual Verification Required
This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.
Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).
🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.
- Review the CVE details at NVD
- Check vendor security advisories for your specific version
- Test if the vulnerability is exploitable in your environment
- Consider updating to the latest version as a precaution
⚠️ Risk & Real-World Impact
Worst Case
Attackers could steal admin credentials, hijack user sessions, deface websites, or redirect users to malicious sites, potentially leading to complete site compromise and data theft.
Likely Case
Attackers with contributor access inject malicious scripts to steal user session cookies, perform actions on behalf of users, or display phishing content to visitors.
If Mitigated
With proper input validation and output escaping, the attack would fail to execute scripts, limiting impact to harmless HTML display issues.
🎯 Exploit Status
Exploitation requires authenticated access but is straightforward once an attacker has Contributor-level credentials.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 2.11.1 or later
Vendor Advisory: https://wordpress.org/plugins/ultimate-member/#developers
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find Ultimate Member plugin. 4. Click 'Update Now' if update is available. 5. Alternatively, download version 2.11.1+ from WordPress.org and manually replace plugin files.
🔧 Temporary Workarounds
Remove Contributor Role Access
allTemporarily restrict Contributor-level users from creating or editing posts until patched.
Disable Ultimate Member Plugin
linuxDeactivate the plugin if not essential for site functionality.
wp plugin deactivate ultimate-member
🧯 If You Can't Patch
- Implement Web Application Firewall (WAF) rules to block XSS payloads in shortcode parameters
- Regularly audit user accounts and remove unnecessary Contributor-level access
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin → Plugins → Installed Plugins → Ultimate Member version. If version is 2.11.0 or lower, you are vulnerable.
Check Version:
wp plugin get ultimate-member --field=version
Verify Fix Applied:
After updating, verify Ultimate Member plugin version is 2.11.1 or higher in WordPress admin panel.
📡 Detection & Monitoring
Log Indicators:
- Unusual shortcode modifications in post/page edits
- Multiple failed login attempts followed by successful Contributor-level login
Network Indicators:
- JavaScript payloads in HTTP POST parameters to WordPress admin-ajax.php or similar endpoints
SIEM Query:
source="wordpress.log" AND ("shortcode" AND ("script" OR "onclick" OR "javascript:"))
🔗 References
- https://plugins.trac.wordpress.org/browser/ultimate-member/tags/2.10.6/includes/core/class-shortcodes.php#L525
- https://plugins.trac.wordpress.org/browser/ultimate-member/tags/2.10.6/includes/core/class-shortcodes.php#L542
- https://plugins.trac.wordpress.org/browser/ultimate-member/tags/2.10.6/includes/core/class-shortcodes.php#L558
- https://plugins.trac.wordpress.org/browser/ultimate-member/tags/2.10.6/includes/core/class-shortcodes.php#L591
- https://plugins.trac.wordpress.org/browser/ultimate-member/tags/2.10.6/includes/core/class-shortcodes.php#L625
- https://plugins.trac.wordpress.org/browser/ultimate-member/tags/2.10.6/includes/core/class-shortcodes.php#L67
- https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3421362%40ultimate-member&new=3421362%40ultimate-member&sfp_email=&sfph_mail=
- https://www.wordfence.com/threat-intel/vulnerabilities/id/b4c06548-238d-4b75-8f20-d7de6fc21539?source=cve