Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Contributor-level WordPress account
-
DeliveryCraft [bs_tcontent] shortcode with space-injected id attribute
-
ExploitSave post containing malicious shortcode
-
ExecutionVictim views page and hovers injected element
-
PersistEvent handler executes script in victim browser
-
ImpactSession/action abuse in victim context
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. |
| Exploitation Conditions | Exploitation requires an authenticated WordPress account with Contributor-level privileges or above (PR:L) on a site running the Bootstrap Shortcodes plugin before version 3.4.6, and the attacker must be able to author content using the plugin's [bs_tcontent] shortcode. The specific trigger is supplying a value containing a space character to the shortcode's id attribute, which the vulnerable bs_tcontent() handler in inc/bs_tabs.php emits into an UNQUOTED HTML attribute; esc_attr() does not encode spaces, so the space terminates the attribute and subsequent text is parsed as additional attributes including event handlers. Exploitation is LIMITED by: (1) the required Contributor-or-above authentication, narrowing attackers to semi-trusted users; (2) required victim user interaction - the injected event handler (e.g. onmouseover) must be triggered by a user viewing and interacting with the rendered element, so purely passive page loads may not fire it depending on the handler chosen; and (3) applicability only to the default vulnerable code path in versions prior to 3.4.6. |
| Impact | This is a genuinely medium-to-low priority issue, not an inflated high-CVSS item. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N) yields a score of 5.1 (Medium), and every signal aligns with that modest rating: exploitation requires authenticated access at Contributor level or above (PR:L), and it requires victim interaction - the payload only fires when a user views AND interacts with the injected element (UI:P/Passive). Confidentiality impact is nil (VC:N) with only limited integrity/availability-of-page impact in the victim's browser context (VI:L, scope spill SC:L/SI:L). No EPSS score was provided, there is no CISA KEV listing, and no public exploit code was identified, so there is no evidence of active or widespread exploitation. The key limiting factor is the trust barrier: Contributor-level accounts are already semi-trusted, which substantially narrows the realistic attacker population to insiders or compromised low-privilege accounts on multi-author sites. Source-code evidence (the fix commit adding quotes around the id attribute, plus a regression test) confirms the vulnerability mechanism with high confidence. Bottom line: a legitimate but not urgent issue - patch during normal maintenance, prioritize on multi-author WordPress sites that grant Contributor accounts to untrusted users. |
| Exploit ScenarioDerived | An attacker holding a WordPress Contributor account (or who has compromised one) authors a post or page containing a [bs_tcontent id="x onmouseover=alert(document.cookie) ..."] shortcode, where a space in the id value breaks out of the unquoted HTML attribute and injects a JavaScript event handler. When an administrator or other visitor views the page and moves their mouse over the rendered tab element, the script executes in their browser session. No public proof-of-concept was identified, but the fix commit's regression test demonstrates the exact injection string, making the technique trivially reproducible. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 18, 2026
Stored cross-site scripting in the Bootstrap Shortcodes plugin for WordPress before 3.4.6 allows authenticated users with Contributor-level access or higher to inject arbitrary web script through a crafted id attribute in the [bs_tcontent] shortcode, which is rendered into an unquoted HTML attribute; a victim must view the page and interact with the injected element for the script to execute. The issue is rated CVSS 5.1 and there is no public exploit identified at time of analysis; the vendor has released version 3.4.6 with a fix that quotes the attribute.
RemediationAI
Upgrade the Bootstrap Shortcodes plugin to 3.4.6 or later (vendor-released patch: 3.4.6; fix commit https://github.com/TheWebShop/bootstrap-shortcodes/commit/c26659ccb6ddb871c7dee1b77cb81cad63e7a75b; release https://github.com/TheWebShop/bootstrap-shortcodes/releases/tag/3.4.6). If immediate upgrade is not possible, reduce exposure by removing Contributor-and-above accounts that do not need content authoring, auditing existing posts for [bs_tcontent] shortcodes with spaces in the id attribute, and disabling the plugin if its shortcodes are not in use; restricting or disabling the shortcode removes functionality and may break existing pages. A WAF rule can help block crafted shortcode payloads but is not a substitute for the patch.
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 plugin implements WordPress shortcodes in PHP. The bs_tcontent() handler in inc/bs_tabs.php builds a div with class and id; it applies esc_attr() to the id but emits it without surrounding quotes. esc_attr() escapes characters like quotes and angle brackets but does not encode spaces, so an attacker-supplied id value such as xss onmouseover=alert(1) terminates the id attribute at the space and causes onmouseover to be parsed as a separate event-handler attribute. This is CWE-79 (improper neutralization of input during web page generation), specifically stored XSS because shortcode content persists in posts/pages. CPE data identifies the affected package as bootstrap_shortcodes_project:bootstrap_shortcodes. The upstream fix commit c26659cc changes the output to id="..." and adds a PHPUnit regression test asserting that injected onmouseover and style attributes are not created.
Know when Bootstrap Shortcodes 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N/SC:L/SI:L/SA:N
Contributor authentication required (PR:L), victim must interact to trigger the handler (UI:R), script crosses into the victim's browser context (S:C) with limited C/I impact and no availability effect.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
DescriptionCVE.org
The Bootstrap Shortcodes plugin for WordPress before 3.4.6 is vulnerable to stored XSS via the id attribute of the [bs_tcontent] shortcode. The bs_tcontent() shortcode handler in inc/bs_tabs.php emits the id attribute value into an unquoted HTML attribute. esc_attr() is applied, but it does not encode space characters, so a space in the supplied value terminates the attribute and any following text is parsed as additional HTML attributes, including JavaScript event handlers. This allows authenticated attackers with Contributor-level access and above to inject arbitrary web script that executes in the browser of any user who views the page and interacts with the injected element.
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.
EUVD-2026-104011
GHSA-xjrv-38f5-jpr9
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB