CVE-2026-3997 MEDIUM

CVE-2026-3997: Text Toggle <= 1.1 - Authenticated (Contributor+) Stored Cross-Site Scripting via 'title' Shortcode Attribute

Vendor Hoosierdragon
Product Text Toggle
Weakness CWE-79 · XSS
Published March 21, 2026
Last update April 8, 2026

CVSS base score

6.4/10
Attack vector Network
Attack complexity Low
Privileges required Low
User interaction None
Confidentiality Low
Integrity Low

CVSS vector

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N

What the vulnerability does

01Description

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.

Explanation of Vulnerability in Simple Terms

02Summary

Text Toggle versions 1.1 and earlier contain a cross-site scripting vulnerability that allows authenticated users to inject malicious scripts affecting other users on the site. An attacker with low-level account access can craft input that executes in other users' browsers, potentially stealing session data or performing actions on their behalf. The vulnerability has scope impact, meaning the attack can affect components beyond the vulnerable feature.

What an attacker can do

03Attacker Capabilities

Inject JavaScript code that runs in other users' browsers and steals their session data or performs actions as them.

Potential impact on your site

04Site Impact

Any authenticated user can compromise other users' accounts or sessions without their knowledge or action.

Conditions required to exploit

05Prerequisites

Attacker needs a low-privilege account on the site; no user interaction required from the victim.

Key dates

06Disclosure timeline

March 21, 2026 CVE published
April 8, 2026 Record updated