Text Toggle <= 1.1 - Authenticated (Contributor+) Stored Cross-Site Scripting via 'title' Shortcode Attribute
Summary
| CVE | CVE-2026-3997 |
|---|---|
| State | PUBLISHED |
| Assigner | Wordfence |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-03-21 04:17:37 UTC |
| Updated | 2026-04-24 16:27:44 UTC |
| Description | The Text Toggle plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'title' shortcode attribute of the [tt_part] and [tt] shortcodes in all versions up to and including 1.1. This is due to insufficient input sanitization and output escaping on user-supplied shortcode attributes. Specifically, in the avp_texttoggle_part_shortcode() function, the 'title' attribute is extracted from shortcode attributes and concatenated directly into HTML output without any escaping — both within an HTML attribute context (title="...") on line 116 and in HTML content on line 119. While the 'class' attribute is properly validated using ctype_alnum(), the 'title' attribute has no sanitization whatsoever. An attacker can inject double-quote characters to break out of the title attribute and inject arbitrary HTML attributes including event handlers. 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. |
Risk And Classification
Primary CVSS: v3.1 6.4 MEDIUM from [email protected]
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
EPSS: 0.000730000 probability, percentile 0.219170000 (date 2026-04-25)
Problem Types: CWE-79 | CWE-79 CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
| Version | Source | Type | Score | Severity | Vector |
|---|---|---|---|---|---|
| 3.1 | [email protected] | Secondary | 6.4 | MEDIUM | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N |
| 3.1 | CNA | DECLARED | 6.4 | MEDIUM | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N |
CVSS v3.1 Breakdown
Attack Vector
NetworkAttack Complexity
LowPrivileges Required
LowUser Interaction
NoneScope
ChangedConfidentiality
LowIntegrity
LowAvailability
NoneCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | Hoosierdragon | Text Toggle | affected 1.1 semver | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| plugins.trac.wordpress.org/browser/text-toggle/tags/1.1/avp-texttoggle.php | [email protected] | plugins.trac.wordpress.org | |
| plugins.trac.wordpress.org/browser/text-toggle/trunk/avp-texttoggle.php | [email protected] | plugins.trac.wordpress.org | |
| plugins.trac.wordpress.org/browser/text-toggle/trunk/avp-texttoggle.php | [email protected] | plugins.trac.wordpress.org | |
| plugins.trac.wordpress.org/browser/text-toggle/tags/1.1/avp-texttoggle.php | [email protected] | plugins.trac.wordpress.org | |
| plugins.trac.wordpress.org/browser/text-toggle/trunk/avp-texttoggle.php | [email protected] | plugins.trac.wordpress.org | |
| www.wordfence.com/threat-intel/vulnerabilities/id/d7ac0683-120f-4e76-9d44-5ee1c... | [email protected] | www.wordfence.com | |
| plugins.trac.wordpress.org/browser/text-toggle/tags/1.1/avp-texttoggle.php | [email protected] | plugins.trac.wordpress.org | |
| plugins.trac.wordpress.org/browser/text-toggle/trunk/avp-texttoggle.php | [email protected] | plugins.trac.wordpress.org | |
| plugins.trac.wordpress.org/browser/text-toggle/tags/1.1/avp-texttoggle.php | [email protected] | plugins.trac.wordpress.org | |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
Vendor Comments And Credit
Discovery Credit
CNA: Gilang Asra Bilhadi (en)
Additional Advisory Data
| Source | Time | Event |
|---|---|---|
| CNA | 2026-03-20T15:07:17.000Z | Disclosed |
There are currently no legacy QID mappings associated with this CVE.