Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Stored XSS requires victim page visit (UI:R, not UI:N); contributor account needed (PR:L); scope change to victim browser (S:C) is accurate.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
Lifecycle Timeline
2DescriptionCVE.org
The Services Section Block - Showcase Service Details in Grid or Columns plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'link' Block Attribute in all versions up to, and including, 1.4.4 due to insufficient input sanitization and output escaping. 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. The payload persists inside HTML comments in post_content, bypassing wp_kses_post sanitization at save time, and executes via both the primary service link anchor and a secondary title-wrapped anchor when the linkIn option is set to 'title'.
AnalysisAI
Stored Cross-Site Scripting in the bplugins Services Section Block WordPress plugin (all versions through 1.4.4) enables authenticated attackers with contributor-level access to inject persistent malicious scripts via the 'link' block attribute. The payload evades wp_kses_post sanitization by embedding inside HTML comments at save time, then executes from two rendering paths - the primary service link anchor and a secondary title-wrapped anchor - when the linkIn option is set to 'title'. No public exploit has been identified at time of analysis, and the vulnerability is not listed in CISA KEV, but the scope-changed (S:C) nature means injected content executes in any site visitor's browser session, enabling session hijacking or credential theft at scale.
Technical ContextAI
The affected product is identified by CPE cpe:2.3:a:bplugins:services_section_block_-_showcase_service_details_in_grid_or_columns:*:*:*:*:*:*:*:* and is a Gutenberg block plugin that renders service showcase grids or column layouts. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation - Stored XSS). The sanitization bypass is architecturally significant: wp_kses_post, WordPress's standard allowed-tag filter applied at save time, is circumvented because the attacker payload is stored inside HTML comments within post_content. HTML comments are preserved by wp_kses_post but the injected content is later interpreted by the browser when the block's render.php (server-side) or view.js (client-side) output the link attribute without additional escaping on the way out. The dual execution path - both the anchor wrapping the service icon and a second anchor wrapping the title when linkIn is 'title' - suggests the attribute is concatenated into markup in at least two template locations without sanitization, consistent with the trac references pointing to render.php and view.js.
RemediationAI
The upstream fix is available as WordPress plugin repository changeset 3570724 (https://plugins.trac.wordpress.org/changeset?old=3570724%40services-section&new=3570724%40services-section), but the exact released plugin version corresponding to this commit has not been independently confirmed from available data - update to the latest version available in the WordPress plugin repository and verify the installed version exceeds 1.4.4 once a tagged release is published. Until a confirmed patched version is installed, site administrators should restrict contributor-level account creation and registration to trusted users only, as this eliminates the lowest-privilege attack path. Alternatively, deactivating the Services Section Block plugin entirely removes the vulnerable surface without side-effects beyond losing the block's display functionality. Do not rely on wp_kses_post alone for output-context safety in block plugins - the bypass demonstrated here (HTML comment persistence) is a known sanitization gap that requires escaping at render time (esc_url() on link attributes in render.php and equivalent sanitization in view.js). The Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/8e796458-acd4-4334-af1c-29c82f0791ac should be monitored for patch version confirmation.
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-37849
GHSA-vf4m-437w-3xxm