CVE-2026-3600
Received Received - Intake
Stored XSS in Investi WordPress Plugin via Shortcode Attribute

Publication date: 2026-04-08

Last updated on: 2026-04-08

Assigner: Wordfence

Description
The Investi plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'investi-announcements-accordion' shortcode's 'maximum-num-years' attribute in all versions up to, and including, 1.0.26. This is due to insufficient input sanitization and output escaping on user-supplied shortcode attributes. Specifically, the 'maximum-num-years' attribute value is read directly from shortcode attributes and interpolated into a double-quoted HTML attribute without any escaping (no esc_attr(), htmlspecialchars(), or similar). This makes it possible for authenticated attackers, with Contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-04-08
Last Modified
2026-04-08
Generated
2026-05-07
AI Q&A
2026-04-09
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
investi plugin to 1.0.26 (inc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-79 The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
Attack-Flow Graph
AI Powered Q&A
How can this vulnerability be detected on my network or system? Can you suggest some commands?

This vulnerability involves Stored Cross-Site Scripting (XSS) via the 'maximum-num-years' attribute in the 'investi-announcements-accordion' shortcode of the Investi WordPress plugin. Detection involves identifying if your WordPress site uses the Investi plugin version 1.0.26 or earlier and checking for the presence of this shortcode with potentially malicious input.

To detect exploitation attempts or presence of the vulnerability, you can search your WordPress content database for usage of the shortcode with suspicious or script-injected 'maximum-num-years' attributes.

  • Use a database query to find posts containing the shortcode, for example in MySQL: SELECT ID, post_content FROM wp_posts WHERE post_content LIKE '%[investi-announcements-accordion%maximum-num-years=%';
  • Look for suspicious script tags or unusual characters in the 'maximum-num-years' attribute values.
  • Monitor web server logs for unusual requests or POST data from authenticated users with Contributor-level access or higher that include the shortcode or script payloads.

What immediate steps should I take to mitigate this vulnerability?

Immediate mitigation steps include updating the Investi plugin to a version later than 1.0.26 where this vulnerability is fixed.

If an update is not immediately available, restrict Contributor-level and higher user permissions to trusted users only, as the vulnerability requires authenticated access at this level.

As a temporary workaround, avoid using the 'investi-announcements-accordion' shortcode or remove the 'maximum-num-years' attribute from its usage in your content.

Implement Web Application Firewall (WAF) rules to detect and block attempts to inject scripts via shortcode attributes.


Can you explain this vulnerability to me?

The Investi plugin for WordPress has a Stored Cross-Site Scripting (XSS) vulnerability in its 'investi-announcements-accordion' shortcode, specifically in the 'maximum-num-years' attribute.

This vulnerability exists because the plugin does not properly sanitize or escape user-supplied input for this attribute before inserting it into a double-quoted HTML attribute.

As a result, authenticated users with Contributor-level access or higher can inject malicious scripts that will execute whenever any user views the affected page.


How can this vulnerability impact me? :

This vulnerability allows attackers with Contributor-level access or above to inject arbitrary web scripts into pages.

These scripts execute in the context of users visiting the infected pages, potentially leading to theft of user credentials, session hijacking, defacement, or other malicious actions.

Because the attack requires authenticated access, it may be harder to exploit remotely by anonymous users, but still poses a significant risk within the site.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart