CVE-2025-2918
📋 TL;DR
This stored XSS vulnerability in the Ultimate Blocks WordPress plugin allows authenticated attackers with Contributor-level access or higher to inject malicious scripts into website pages. These scripts execute whenever users view the compromised pages, potentially stealing credentials or performing unauthorized actions. All WordPress sites using Ultimate Blocks plugin versions up to 3.3.3 are affected.
💻 Affected Systems
- Ultimate Blocks – WordPress Blocks Plugin
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Attackers could steal administrator credentials, deface websites, redirect users to malicious sites, or install backdoors for persistent access.
Likely Case
Attackers inject malicious scripts to steal user session cookies, redirect visitors to phishing pages, or display unwanted advertisements.
If Mitigated
With proper user role management and input validation, impact is limited to low-privilege user data exposure.
🎯 Exploit Status
Exploitation requires authenticated access but is straightforward once attacker has Contributor privileges.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 3.3.4 or later
Vendor Advisory: https://wordpress.org/plugins/ultimate-blocks/#developers
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find Ultimate Blocks plugin. 4. Click 'Update Now' if update available. 5. Alternatively, download latest version from WordPress plugin repository and manually update.
🔧 Temporary Workarounds
Temporary Plugin Deactivation
allDisable the Ultimate Blocks plugin until patched
Restrict User Roles
allTemporarily remove Contributor-level access for untrusted users
🧯 If You Can't Patch
- Implement strict Content Security Policy (CSP) headers to limit script execution
- Use web application firewall (WAF) rules to block XSS payloads
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin panel → Plugins → Ultimate Blocks → Version number. If version is 3.3.3 or lower, system is vulnerable.
Check Version:
wp plugin list --name='ultimate-blocks' --field=version
Verify Fix Applied:
After updating, verify plugin version is 3.3.4 or higher in WordPress admin panel.
📡 Detection & Monitoring
Log Indicators:
- Unusual POST requests to WordPress admin-ajax.php with script tags
- Multiple content updates from Contributor-level users
Network Indicators:
- Unexpected script tags in page responses
- External script loads from unusual domains
SIEM Query:
source="wordpress.log" AND ("ultimate-blocks" OR "admin-ajax.php") AND ("script" OR "onload" OR "javascript:")
🔗 References
- https://plugins.trac.wordpress.org/browser/ultimate-blocks/tags/3.2.9/src/blocks/content-filter/block.php#L14
- https://plugins.trac.wordpress.org/browser/ultimate-blocks/tags/3.2.9/src/blocks/content-toggle/block.php#L133
- https://plugins.trac.wordpress.org/browser/ultimate-blocks/tags/3.2.9/src/blocks/how-to/block.php#L335
- https://plugins.trac.wordpress.org/browser/ultimate-blocks/tags/3.2.9/src/blocks/tabbed-content/block.php#L136
- https://www.wordfence.com/threat-intel/vulnerabilities/id/41b2a4cc-fb23-41eb-b1a4-d793ae924d9a?source=cve