CVE-2025-32167
📋 TL;DR
This stored cross-site scripting (XSS) vulnerability in SurveyJS allows attackers to inject malicious scripts into web pages that persist in the system. When users view pages containing the malicious content, the scripts execute in their browsers, potentially stealing credentials or performing unauthorized actions. This affects all SurveyJS users running versions up to 1.12.20.
💻 Affected Systems
- SurveyJS 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 administrator credentials, hijack user sessions, deface websites, or redirect users to malicious sites, potentially leading to complete system compromise.
Likely Case
Attackers inject malicious JavaScript to steal user session cookies or credentials, enabling account takeover and unauthorized access to sensitive survey data.
If Mitigated
With proper input validation and output encoding, malicious scripts would be neutralized before reaching users, preventing execution.
🎯 Exploit Status
XSS vulnerabilities typically have low exploitation complexity. The stored nature means injected scripts persist and affect multiple users.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 1.12.21 or later
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find SurveyJS plugin. 4. Click 'Update Now' if available. 5. Alternatively, download latest version from WordPress repository and manually update.
🔧 Temporary Workarounds
Input Validation Filter
allImplement server-side input validation to sanitize all user inputs before processing.
Implement PHP filter_var() or htmlspecialchars() on all user inputs
Content Security Policy
allImplement CSP headers to restrict script execution sources.
Add 'Content-Security-Policy: default-src 'self'; script-src 'self'' to HTTP headers
🧯 If You Can't Patch
- Disable the SurveyJS plugin until patched
- Implement web application firewall (WAF) rules to block XSS payloads
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin panel → Plugins → SurveyJS version. If version is 1.12.20 or lower, you are vulnerable.
Check Version:
wp plugin list --name=surveyjs --field=version (if WP-CLI installed)
Verify Fix Applied:
After updating, verify version shows 1.12.21 or higher in WordPress plugins list.
📡 Detection & Monitoring
Log Indicators:
- Unusual POST requests to survey endpoints with script tags
- Multiple failed input validation attempts
Network Indicators:
- HTTP requests containing <script> tags in survey-related parameters
- Unexpected JavaScript execution in survey pages
SIEM Query:
source="web_logs" AND (uri_path="/wp-admin/admin-ajax.php" OR uri_path LIKE "%/surveyjs/%") AND (http_method="POST" AND (request_body LIKE "%<script>%" OR request_body LIKE "%javascript:%"))