Skip to main content

GSpeech TTS CVE-2026-96578

| EUVDEUVD-2026-91238 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-02 Wordfence GHSA-5j3q-4q9j-rwqr
7.2
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Submit crafted comment with kses-allowed tags
  2. Delivery
    Comment stored past kses sanitization
  3. Exploit
    Plugin output buffer rewrites HTML
  4. Execution
    mXSS payload activates on page render
  5. Impact
    Script runs in visitor's browser session

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 that the GSpeech TTS plugin is active and its output-buffer rewrite runs on the page displaying the comment, and that the site accepts comments (the injection vector is Comment Content). The payload must be constructed from kses-allowed tags/attributes so it survives WordPress comment sanitization, then relies on the plugin's request-time HTML rewrite to become executable. Practical limiting factors: comments from unauthenticated users are frequently held for moderation or require approval depending on site configuration, so auto-published comments materially increase exposure; a victim must subsequently load the affected page for the stored script to fire; and sites not running GSpeech (or not rendering GSpeech output on the commented page) are unaffected.

Impact

This is a genuine but moderate-priority issue rather than a top-tier emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N, base 7.2 High) indicates a network-reachable, low-complexity, unauthenticated stored XSS with a scope change - consistent with the description, where an unauthenticated attacker plants a comment that later executes against any visitor of the rendered page. The scope change (S:C) is well-justified: the plugin's output-buffer callback rewrites HTML at request time, so a payload stored under the WordPress site's security context executes in the browser context of other users. No EPSS score was provided in the input, there is no CISA KEV listing, and no public POC is referenced - exploitation status is therefore 'no public exploit identified at time of analysis.' Note one tension worth flagging: the CVSS marks UI:N, but as a stored XSS the payload only fires when a victim actually loads an affected page, so real-world triggering still depends on a user visiting the injected content even though no explicit interaction with the attacker is needed. The novel element raising practical risk is the mXSS-style bypass: the payload is stored using only kses-allowed tags/attributes (so WordPress comment sanitization passes it) and becomes malicious only after the plugin's output rewrite, defeating the platform's standard defense. Overall: credible, unauthenticated, and bypasses a normally-trusted control, but impact is limited to C:L/I:L/A:N and the affected product has a narrow footprint, keeping this below critical.

Exploit ScenarioDerived

An unauthenticated attacker submits a blog comment containing only kses-permitted HTML tags and attributes, which passes WordPress comment sanitization and is stored. When the GSpeech plugin's output-buffer callback later rewrites the rendered page HTML, the benign-looking markup is transformed into active event handlers/style fragments, so arbitrary script executes in the browser of any user who views that page. No public exploit code is referenced in the available data, but the technique is fully described and low-complexity.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 02, 2026

Stored cross-site scripting in the GSpeech TTS - WordPress Text To Speech plugin (all versions up to and including 3.22.0) allows unauthenticated attackers to plant script content in a post's comment field that survives WordPress kses sanitization and only becomes executable when the plugin rewrites the rendered HTML at request time. Any visitor who subsequently loads the affected page can have attacker-controlled script run in their browser session, though exposure depends on the site accepting and auto-publishing unauthenticated comments and on GSpeech output being rendered on that page. No public exploit code has been identified at time of analysis and there is no indication of confirmed active exploitation (not in CISA KEV); exploitation requirements include the plugin being active and its output-buffer rewrite running on the page displaying the comment.

RemediationAI

The primary fix is to update the GSpeech TTS plugin past 3.22.0 - the advisory lists 3.22.0 and earlier as vulnerable, and an upstream code change is referenced at https://plugins.trac.wordpress.org/changeset?reponame=&old=3717307%40gspeech&new=3717307%40gspeech, so administrators should install the latest available release and confirm, via the WordPress plugin repository changelog, that the shipped version is strictly later than 3.22.0. Status of the vendor-published fix should be treated as "upstream fix available (PR/commit); released patched version not independently confirmed" until a tagged release beyond 3.22.0 is verified. Where immediate updating is not possible, the highest-value compensating control is to eliminate the injection vector: disable or restrict comments on pages that render GSpeech output, or configure WordPress so that comments from unauthenticated users always require manual moderation and are never auto-published (trade-off: increased moderation workload and reduced visitor engagement, but it prevents the stored payload from ever reaching a rendered page). A second option is to temporarily deactivate the GSpeech TTS plugin on templates where comments are displayed (trade-off: loss of the text-to-speech feature). Site-wide, deploy a Content-Security-Policy that blocks inline and event-handler script execution (e.g., script-src without 'unsafe-inline') to blunt the payload even if it is stored (trade-off: requires auditing plugin and theme script usage and can break legitimate front-end functionality). Also review and remove any existing comments containing unusual kses-legal markup, and monitor for anomalous comment submissions on affected sites.

Affected VersionsENISA

GSpeech TTS – WordPress Text To Speech Plugin 0 ≤3.22.0

Affected Packages

euvd gspeech_tts_wordpress_text_to_speech_plugin no fix

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 issue is a CWE-79 (Improper Neutralization of Input During Web Page Generation) flaw with a mutation-XSS (mXSS) flavor specific to the WordPress ecosystem. WordPress applies kses filtering to comment content, but that filter only strips tags and attributes outside a disallowed set - it does not neutralize markup whose dangerous semantics only emerge after later DOM/HTML string transformation. Here the payload is written using only kses-permitted tags and attributes, so it is stored intact; the malicious event handlers and style fragments become live only when the GSpeech TTS frontend output-buffer callback (see includes/gspeech_frontend.php around lines 160, 459 and 540 in the 3.21.5 tag) rewrites the page HTML at request time. That request-time rewrite is the mutation step that converts the seemingly benign stored markup into executable script, which is why the sink cannot be caught at comment-submission time by WordPress core sanitization alone. The affected component is the GSpeech TTS - WordPress Text To Speech Plugin, tracked by CPE cpe:2.3:a:creative-solutions-1:gspeech_tts_-_wordpress_text_to_speech_plugin (all versions), and mirrored by ENISA EUVD-2026-91238 as affecting GSpeech TTS 0 through 3.22.0. The CVSS v3.1 vector AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N (7.2 High) reflects a network-reachable, low-complexity, unauthenticated attack that crosses a trust boundary (S:C) while limiting direct confidentiality and integrity impact.

Know when Wordpress Plugin 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 (Wordfence) PRIMARY 7.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 7.2 HIGH

Unauthenticated remote comment injection (PR:N, AV:N) with a reliable kses-bypass (AC:L); S:C because the plugin rewrite causes execution in other users' browser context; C:L/I:L/A:N typical of XSS.

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

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

The GSpeech TTS - WordPress Text To Speech Plugin plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Comment Content in all versions up to, and including, 3.22.0 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This mXSS-style transform bypasses WordPress comment kses sanitization because the payload is stored using only kses-allowed tags and attributes; the malicious event handlers and style fragments become active only when the plugin's output-buffer callback rewrites the rendered HTML at request time.

Executive ViewAI

Why It Matters

A stored cross-site scripting flaw affecting all versions of the GSpeech TTS WordPress Text To Speech plugin up to and including 3.22.0 allows attacker-supplied script to be planted in a page's comment field and later executed in the browsers of visitors who load that page, and no vendor patch is currently available. Because the malicious code runs inside the visitor's session rather than on the server, the organization's public-facing site, its visitors, and its brand reputation are the primary exposure, with potential session or credential theft, drive-by redirects, and page defacement. Leadership should care because remediation depends on configuration changes the organization controls, not on a fix from the vendor, and any site with open, auto-published comments and active plugin output is in scope.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: deactivate or fully remove GSpeech TTS - WordPress Text To Speech 3.22.0 and earlier; disable unauthenticated comment posting and auto-publishing, and enforce comment moderation; deploy WAF or virtual-patching rules that filter script tags and event-handler content in comment fields; apply a restrictive Content-Security-Policy against inline script on affected pages; audit and cleanse existing stored comments for injected payloads.

Threat Intelligence Overview

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Low
niche WordPress text-to-speech/accessibility plugin, limited deployment footprint
Data Quality
4 sources
Confidence: Medium

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 HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
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.

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

CVE-2024-5084 CRITICAL POC
9.8 May 23

The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil

CVE-2024-44000 CRITICAL POC
9.8 Oct 20

Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote

CVE-2020-36847 CRITICAL POC
9.8 Jul 12

The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner

CVE-2025-27007 CRITICAL POC
9.8 May 01

The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut

CVE-2016-1209 CRITICAL POC
9.8 May 14

The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via

CVE-2024-4443 CRITICAL POC
9.8 May 22

The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based

CVE-2024-1698 CRITICAL POC
9.8 Feb 27

SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a

CVE-2023-6875 CRITICAL POC
9.8 Jan 11

The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i

CVE-2024-1512 CRITICAL POC
9.8 Feb 17

The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base

CVE-2024-4295 CRITICAL POC
9.8 Jun 05

The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in

CVE-2024-50498 CRITICAL POC
10.0 Oct 28

Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u

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