What the vulnerability does
01Description
The TableOn – WordPress Posts Table Filterable plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'tableon_button' shortcode in all versions up to and including 1.0.4.4. This is due to insufficient input sanitization and output escaping on user-supplied shortcode attributes such as 'class', 'help_link', 'popup_title', and 'help_title'. The do_shortcode_button() function extracts these attributes without sanitization and passes them to TABLEON_HELPER::draw_html_item(), which concatenates attribute values into HTML using single quotes without escaping (line 29: $item .= " {$key}='{$value}'"). 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
TableOn contains a stored cross-site scripting (XSS) vulnerability in versions up to 1.0.4.4. An authenticated user with low privileges can inject malicious scripts that execute in the browsers of other site visitors, potentially compromising their sessions or stealing data. The vulnerability affects the plugin's table filtering functionality and has site-wide scope.
What an attacker can do
03Attacker Capabilities
Inject malicious scripts that run in other users' browsers when they view the affected table.
Potential impact on your site
04Site Impact
Visitors to pages displaying the affected table may have their sessions hijacked or credentials stolen by injected scripts.
Conditions required to exploit
05Prerequisites
Attacker must have a low-privilege WordPress account (e.g., contributor or subscriber role).
Key dates
06Disclosure timeline
April 8, 2026
CVE published
April 8, 2026
Record updated