CVE-2025-6174

6.1 MEDIUM

📋 TL;DR

This vulnerability allows attackers to inject malicious scripts via the '_stylesheet' parameter in the Qwizcards WordPress plugin. When high-privilege users like administrators view pages containing the malicious parameter, their browsers execute the script, potentially compromising their accounts. All WordPress sites running vulnerable versions of the Qwizcards plugin are affected.

💻 Affected Systems

Products:
  • Qwizcards | online quizzes and flashcards WordPress plugin
Versions: through 3.9.4
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with Qwizcards plugin enabled. Attack requires user interaction with malicious link.

⚠️ 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.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Administrator account takeover leading to full site compromise, data theft, malware installation, or site defacement.

🟠

Likely Case

Session hijacking of admin users, credential theft, or unauthorized actions performed with admin privileges.

🟢

If Mitigated

Limited impact with proper input validation, output encoding, and security headers in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Reflected XSS requires tricking users into clicking malicious links. No authentication needed to trigger the vulnerability.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.9.5 or later

Vendor Advisory: https://wpscan.com/vulnerability/ff827f67-712e-4ab6-b6aa-7f5e6ff1283a/

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find Qwizcards plugin. 4. Click 'Update Now' if update available. 5. Alternatively, download latest version from WordPress repository and replace plugin files.

🔧 Temporary Workarounds

Input Validation Filter

all

Add custom input validation for '_stylesheet' parameter

Add to theme's functions.php: add_filter('sanitize_text_field', 'custom_stylesheet_sanitize'); function custom_stylesheet_sanitize($input) { if (isset($_GET['_stylesheet'])) { return esc_html($_GET['_stylesheet']); } return $input; }

Content Security Policy

all

Implement CSP headers to restrict script execution

Add to .htaccess: Header set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'"
Or add to wp-config.php: header("Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'");

🧯 If You Can't Patch

  • Disable Qwizcards plugin immediately
  • Implement web application firewall rules to block requests containing suspicious '_stylesheet' parameter values

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin > Plugins > Qwizcards version. If version is 3.9.4 or earlier, site is vulnerable.

Check Version:

wp plugin list --name=qwizcards --field=version

Verify Fix Applied:

After update, verify Qwizcards plugin version shows 3.9.5 or later in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests containing '_stylesheet' parameter with script tags or JavaScript code
  • Multiple failed login attempts from admin accounts after suspicious requests

Network Indicators:

  • GET requests with '_stylesheet' parameter containing encoded script payloads
  • Outbound connections to suspicious domains from WordPress server

SIEM Query:

source="web_access.log" AND "_stylesheet" AND ("<script" OR "javascript:" OR "onload=" OR "onerror=")

🔗 References

📤 Share & Export