What the vulnerability does
01Description
The Sheets2Table plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'titles' shortcode attribute in the [sheets2table-render-table] shortcode in all versions up to and including 0.4.1. This is due to insufficient input sanitization and output escaping. Specifically, the 'titles' attribute value from the shortcode is passed through S2T_Functions::trim_array_values() (which only trims whitespace) and then echoed directly into HTML via `echo $header` inside a <th> tag in the display_table_header() function without any escaping such as esc_html(). 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.
Explanation of Vulnerability in Simple Terms
02Summary
Sheets2Table versions 0.4.1 and earlier contain a cross-site scripting vulnerability that allows authenticated users to inject malicious scripts. The vulnerability affects the scope beyond the vulnerable component, potentially impacting other users or site functionality. An attacker with low-level authentication can exploit this without user interaction to inject code that executes in victims' browsers.
What an attacker can do
03Attacker Capabilities
Inject malicious JavaScript that executes in other users' browsers and affects site functionality.
Potential impact on your site
04Site Impact
Authenticated users can inject scripts affecting other users and site behavior; may compromise user sessions or data.
Conditions required to exploit
05Prerequisites
Attacker must have a low-level user account; no user interaction required from the victim.
Key dates
06Disclosure timeline
March 21, 2026
CVE published
April 8, 2026
Record updated