CVE-2024-9184
📋 TL;DR
The SendPulse Free Web Push WordPress plugin has a stored cross-site scripting vulnerability that allows unauthenticated attackers to inject malicious scripts into web pages. These scripts execute automatically when users visit compromised pages, potentially affecting all WordPress sites using vulnerable plugin versions.
💻 Affected Systems
- SendPulse Free Web Push WordPress Plugin
⚠️ 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 session cookies, redirect users to malicious sites, perform actions on behalf of authenticated users, or install malware on visitor systems.
Likely Case
Attackers will inject scripts to steal session cookies or redirect users to phishing/malware sites, potentially compromising user accounts and spreading the attack.
If Mitigated
With proper input validation and output escaping, the malicious scripts would be neutralized before reaching users.
🎯 Exploit Status
The vulnerability is in the wp_kses_allowed_html function usage, making exploitation straightforward for attackers with basic web knowledge.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 1.3.7
Vendor Advisory: https://wordpress.org/plugins/sendpulse-web-push/#developers
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find SendPulse Free Web Push plugin. 4. Click 'Update Now' if available, or delete and reinstall version 1.3.7+. 5. Verify plugin is updated to 1.3.7 or later.
🔧 Temporary Workarounds
Disable vulnerable plugin
allTemporarily disable the SendPulse Free Web Push plugin until patched
wp plugin deactivate sendpulse-web-push
Enable WordPress auto-updates
allConfigure WordPress to automatically update plugins when security patches are available
add_filter('auto_update_plugin', '__return_true'); to wp-config.php
🧯 If You Can't Patch
- Implement a Web Application Firewall (WAF) with XSS protection rules
- Add Content Security Policy headers to restrict script execution sources
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin → Plugins → Installed Plugins for SendPulse Free Web Push version. If version is 1.3.6 or lower, you are vulnerable.
Check Version:
wp plugin get sendpulse-web-push --field=version
Verify Fix Applied:
After updating, verify the plugin version shows 1.3.7 or higher in WordPress admin panel.
📡 Detection & Monitoring
Log Indicators:
- Unusual POST requests to plugin endpoints
- Suspicious script tags in database content
- Multiple failed XSS attempts in web server logs
Network Indicators:
- Unexpected script sources loading on web pages
- Suspicious outbound connections from compromised user sessions
SIEM Query:
source="wordpress" AND (plugin="sendpulse-web-push" AND version<="1.3.6") OR (http_method="POST" AND uri CONTAINS "sendpulse" AND (payload CONTAINS "<script>" OR payload CONTAINS "javascript:"))
🔗 References
- https://plugins.trac.wordpress.org/browser/sendpulse-web-push/trunk/settings.php#L10
- https://plugins.trac.wordpress.org/changeset/3169899/
- https://wordpress.org/plugins/sendpulse-web-push/#developers
- https://www.wordfence.com/threat-intel/vulnerabilities/id/74831bf8-0a30-4758-bfe6-5a5b4ee7ec24?source=cve