Skip to main content

Bootstrap Shortcodes CVE-2026-112111

| EUVDEUVD-2026-104011 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-18 mitre GHSA-xjrv-38f5-jpr9
5.1
CVSS 4.0 · Vendor: mitre
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain Contributor-level WordPress account
  2. Delivery
    Craft [bs_tcontent] shortcode with space-injected id attribute
  3. Exploit
    Save post containing malicious shortcode
  4. Execution
    Victim views page and hovers injected element
  5. Persist
    Event handler executes script in victim browser
  6. Impact
    Session/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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Bootstrap Shortcodes 0 <3.4.6

Affected Packages

euvd bootstrap_shortcodes fix: 3.4.6

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

Vendor (mitre) PRIMARY 5.1 MEDIUM
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
vuln.today AI 5.4 MEDIUM

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.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

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

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Low
niche WordPress formatting plugin, limited install base versus core platform
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy