CVE-2025-48276

6.5 MEDIUM

📋 TL;DR

This stored cross-site scripting (XSS) vulnerability in Visual Composer Website Builder allows attackers to inject malicious scripts into web pages that are then executed when other users view those pages. The vulnerability affects WordPress sites using Visual Composer Website Builder plugin versions up to 45.11.0. Attackers could steal session cookies, redirect users to malicious sites, or perform actions on behalf of authenticated users.

💻 Affected Systems

Products:
  • Visual Composer Website Builder WordPress Plugin
Versions: All versions up to and including 45.11.0
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects WordPress installations with Visual Composer Website Builder plugin installed and activated.

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

Attackers could steal administrator credentials, take over the WordPress site, install backdoors, or redirect all site visitors to malicious phishing pages.

🟠

Likely Case

Attackers inject malicious JavaScript to steal user session cookies, potentially compromising user accounts and performing unauthorized actions.

🟢

If Mitigated

With proper input validation and output encoding, malicious scripts would be neutralized before reaching users.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Stored XSS typically requires some level of access to inject content, but once injected, affects all users viewing the compromised page.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Versions after 45.11.0

Vendor Advisory: https://patchstack.com/database/wordpress/plugin/visualcomposer/vulnerability/wordpress-visual-composer-website-builder-45-11-0-cross-site-scripting-xss-vulnerability?_s_id=cve

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find Visual Composer Website Builder. 4. Click 'Update Now' if available. 5. Alternatively, download latest version from WordPress repository and manually update.

🔧 Temporary Workarounds

Disable Visual Composer Plugin

all

Temporarily disable the vulnerable plugin until patched

wp plugin deactivate visualcomposer

Implement Content Security Policy

all

Add CSP headers to restrict script execution

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

🧯 If You Can't Patch

  • Restrict plugin access to trusted users only
  • Implement web application firewall with XSS protection rules

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins → Visual Composer Website Builder version

Check Version:

wp plugin get visualcomposer --field=version

Verify Fix Applied:

Verify plugin version is greater than 45.11.0

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to Visual Composer endpoints
  • Suspicious script tags in content updates

Network Indicators:

  • Malicious JavaScript payloads in HTTP requests
  • Unexpected external script loads from Visual Composer pages

SIEM Query:

source="wordpress" AND (uri_path="/wp-admin/admin-ajax.php" OR uri_path CONTAINS "visualcomposer") AND (http_method="POST" AND (request_body CONTAINS "<script>" OR request_body CONTAINS "javascript:"))

🔗 References

📤 Share & Export