CVE-2026-3600 Overview
The Investi plugin for WordPress is vulnerable to Stored Cross-Site Scripting (XSS) via the investi-announcements-accordion shortcode's maximum-num-years attribute in all versions up to, and including, 1.0.26. This vulnerability stems from insufficient input sanitization and output escaping on user-supplied shortcode attributes. Authenticated attackers with Contributor-level access or above can inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
Critical Impact
Authenticated attackers can inject malicious JavaScript that persists across page views, potentially compromising site visitors, stealing session cookies, and enabling further attacks on the WordPress installation.
Affected Products
- Investi WordPress Plugin versions up to and including 1.0.26
- WordPress sites using vulnerable Investi plugin versions
- Any WordPress installation where Contributor-level users have access
Discovery Timeline
- 2026-04-08 - CVE-2026-3600 published to NVD
- 2026-04-08 - Last updated in NVD database
Technical Details for CVE-2026-3600
Vulnerability Analysis
This Stored Cross-Site Scripting vulnerability exists in the Investi WordPress plugin's shortcode processing functionality. The maximum-num-years attribute value is read directly from shortcode attributes and interpolated into a double-quoted HTML attribute without any escaping. The vulnerable code fails to implement proper output escaping functions such as esc_attr(), htmlspecialchars(), or similar protective measures that WordPress provides for secure output handling.
The vulnerability requires authentication at the Contributor level or higher, which limits the attack surface somewhat. However, Contributor accounts are commonly used on multi-author WordPress sites, making this a significant risk for content management platforms with multiple users. Once injected, the malicious script persists in the database and executes for every visitor who views the affected page.
Root Cause
The root cause of this vulnerability is insufficient input sanitization and output escaping within the widgets.php file of the Investi plugin. Specifically, the shortcode handler directly interpolates user-supplied attribute values into HTML output without applying WordPress's built-in escaping functions. The maximum-num-years attribute is processed without validation, allowing attackers to break out of the intended HTML attribute context and inject arbitrary JavaScript code.
Attack Vector
This vulnerability is exploited over the network and requires low-privilege authenticated access to the WordPress installation. An attacker with at least Contributor-level access can craft a malicious shortcode containing JavaScript payload in the maximum-num-years attribute. When this shortcode is saved to a post or page, the malicious script is stored in the WordPress database and executed in the browser context of any user who subsequently views the page.
The attack does not require user interaction beyond visiting the compromised page. The injected scripts can perform actions such as session hijacking, credential theft, keylogging, defacement, or redirecting users to malicious sites. The scope is changed because the vulnerability in the plugin context can affect users browsing the WordPress site.
Detection Methods for CVE-2026-3600
Indicators of Compromise
- Unexpected JavaScript content within posts or pages containing the investi-announcements-accordion shortcode
- Anomalous maximum-num-years attribute values containing script tags, event handlers, or encoded JavaScript
- Unusual user account activity from Contributor-level accounts
- Browser-based alerts or unexpected redirects when viewing pages with Investi shortcodes
Detection Strategies
- Audit all posts and pages for shortcodes with suspicious attribute values using WordPress database queries
- Implement Web Application Firewall (WAF) rules to detect XSS patterns in shortcode attributes
- Monitor user account creation and privilege assignments, particularly for Contributor-level access
- Enable browser Content Security Policy (CSP) headers to detect and block inline script execution
Monitoring Recommendations
- Enable detailed WordPress audit logging to track shortcode modifications and user activity
- Configure server-side logging for POST requests to WordPress editor endpoints
- Implement real-time alerting for database modifications to posts containing Investi shortcodes
- Regularly review user accounts with Contributor or higher privileges for unauthorized access
How to Mitigate CVE-2026-3600
Immediate Actions Required
- Update the Investi plugin to a version newer than 1.0.26 immediately
- Review all existing posts and pages for potentially malicious investi-announcements-accordion shortcodes
- Audit Contributor-level user accounts for unauthorized or suspicious activity
- Consider temporarily deactivating the Investi plugin until the update can be applied
Patch Information
A security patch has been released addressing this vulnerability. The fix is available in the WordPress Plugin Changeset. For detailed vulnerability analysis and remediation guidance, refer to the Wordfence Vulnerability Analysis. The vulnerable code can be examined at the WordPress Plugin Code Reference.
Workarounds
- Temporarily restrict Contributor-level access to trusted users only until the plugin is updated
- Remove or disable the investi-announcements-accordion shortcode functionality if not essential
- Implement Content Security Policy headers to mitigate the impact of stored XSS attacks
- Use a Web Application Firewall to filter potentially malicious shortcode attribute values
# WordPress CLI command to check installed plugin version
wp plugin list --name=investi --fields=name,version,status
# Update the plugin to the latest version
wp plugin update investi
# Search for potentially malicious shortcodes in the database
wp db query "SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%investi-announcements-accordion%' AND post_content LIKE '%maximum-num-years%';"
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


