Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Stored XSS requires a victim to visit the injected page (UI:R), not UI:N; contributor auth (PR:L) required; scope change to browser; no availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
Lifecycle Timeline
2DescriptionCVE.org
The Easy Accordion plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'accordionTitleTag' block attribute in versions up to, and including, 3.1.8. This is due to insufficient input sanitization and output escaping in the accordion_header_renderer() function, which emits the attacker-supplied tag name using esc_attr() in an HTML tag-name context instead of tag_escape(). 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.
AnalysisAI
Stored Cross-Site Scripting in the Easy Accordion WordPress plugin (versions ≤ 3.1.8) enables authenticated contributors to persist malicious scripts in page content by supplying a crafted value for the accordionTitleTag block attribute. The accordion_header_renderer() function incorrectly uses WordPress's esc_attr() sanitizer - designed for HTML attribute values - when emitting a user-supplied tag name in an HTML tag-name context, where tag_escape() is required; this mismatch permits injection of arbitrary HTML elements and event handlers. No public exploit code or active exploitation has been confirmed at time of analysis, and this CVE is not listed in the CISA KEV catalog.
Technical ContextAI
Easy Accordion is a WordPress Gutenberg block plugin by ShapedPlugin that renders accordion-style FAQ and content panels. The vulnerability resides in Blocks/Includes/Render_Blocks_Template.php (lines 89, 100, and 126 per plugin trac references), where accordion_header_renderer() processes the accordionTitleTag block attribute - the HTML heading tag (e.g., h2, h3) wrapping accordion titles. WordPress provides two distinct output-encoding functions: esc_attr(), which encodes for HTML attribute value context, and tag_escape(), which whitelists only valid HTML tag names. By applying esc_attr() in a tag-name context, the function fails to constrain input to allowed tag names and does not strip event handlers or exotic tag names, creating a DOM injection point. The block attribute definition is visible in block-attributes.php (line 32). The root cause maps to CWE-79 (Improper Neutralization of Input During Web Page Generation - Stored XSS), specifically the subclass involving context-mismatched output encoding. Affected CPE: cpe:2.3:a:shapedplugin:easy_accordion_-_ai-powered_faq_&_accordion_blocks,_product_faq:*:*:*:*:*:*:*:*.
RemediationAI
Update the Easy Accordion plugin to a version above 3.1.8 via the WordPress admin dashboard (Plugins → Updates); the upstream fix is referenced by WordPress SVN changeset 3637700 at https://plugins.trac.wordpress.org/changeset/3637700/, though the exact patched release version number was not independently confirmed from available input data - administrators should verify the current published version in the WordPress plugin repository. Where immediate updates are not feasible, restrict contributor-level account creation and audit existing contributor accounts, since the vulnerability is not exploitable without at least contributor access. Block-level editor restrictions - via a block_editor_settings filter or a plugin such as Editor Blocks for Gutenberg - can disable the Accordion block for untrusted roles, eliminating the attack surface at the cost of restricting that content type for those users. Content Security Policy headers restricting inline script execution provide additional defense-in-depth but do not prevent the HTML injection itself.
More in Wordpress Plugin
View allThe Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in
Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-54727
GHSA-fqqc-xqw4-9v56