Skip to main content
Vulnerability Database/CVE-2025-10189

CVE-2025-10189: BP Direct Menus Plugin XSS Vulnerability

CVE-2025-10189 is a stored XSS flaw in BP Direct Menus WordPress plugin affecting versions up to 1.0.0. Attackers with contributor access can inject malicious scripts. This article covers technical details, impact, and mitigation.

Published:

CVE-2025-10189 Overview

CVE-2025-10189 is a Stored Cross-Site Scripting (XSS) vulnerability in the BP Direct Menus plugin for WordPress. The flaw affects all versions up to and including 1.0.0. It stems from insufficient input sanitization and output escaping on user-supplied attributes passed to the plugin's bpdm_login shortcode. Authenticated users with contributor-level access or higher can inject arbitrary JavaScript into pages. The injected script executes in the browser of any visitor who loads the affected page. The vulnerability is classified under [CWE-79].

Critical Impact

Authenticated contributors can inject persistent JavaScript through the bpdm_login shortcode, enabling session hijacking, credential theft, or forced administrative actions when a privileged user views the affected page.

Affected Products

  • BP Direct Menus plugin for WordPress
  • All versions through 1.0.0
  • WordPress sites permitting contributor-level accounts

Discovery Timeline

  • 2025-09-30 - CVE-2025-10189 published to NVD
  • 2026-06-17 - Last updated in NVD database

Technical Details for CVE-2025-10189

Vulnerability Analysis

The BP Direct Menus plugin registers a shortcode named bpdm_login that accepts user-supplied attributes. The plugin does not sanitize these attributes on input and does not escape them on output when rendering the shortcode to the page. As a result, attribute values flow directly into the HTML response.

A contributor who embeds the shortcode in a post or page can supply attribute values containing HTML or JavaScript payloads. Once the content is published or previewed by another user, the browser parses the injected markup and executes any attacker-controlled script in the context of the site. Because the payload is stored in the database, every visitor to the injected page triggers execution. See the WordPress Plugin Code Reference and the Wordfence Vulnerability Report for the affected code path.

Root Cause

The root cause is missing input validation on shortcode attributes combined with missing output escaping when the shortcode handler emits HTML. WordPress provides functions such as esc_attr(), esc_html(), and wp_kses() for this purpose, but the plugin's frontend renderer does not apply them to the attributes accepted by bpdm_login.

Attack Vector

An attacker needs an authenticated account with the contributor role or higher on the target WordPress site. The attacker creates or edits a post containing the bpdm_login shortcode and supplies a crafted attribute value carrying JavaScript. When the content is rendered, the payload executes in the browsers of viewers, including editors and administrators who preview or review the submission. This yields impact against confidentiality and integrity in the visitor's session, and can be leveraged to escalate privileges through forged administrative requests.

No verified public exploit code is available. The vulnerability is described in prose based on the referenced advisory.

Detection Methods for CVE-2025-10189

Indicators of Compromise

  • Post or page content containing the bpdm_login shortcode with attribute values that include <script>, onerror=, onload=, or javascript: sequences.
  • Unexpected outbound requests from browser sessions of editors or administrators shortly after previewing contributor-submitted content.
  • New administrative users, changed passwords, or modified plugin settings created without a corresponding admin login event.

Detection Strategies

  • Query the wp_posts table for post_content values matching the bpdm_login shortcode and inspect attribute values for HTML or script syntax.
  • Review contributor submissions in the moderation queue before publication, focusing on shortcode attributes.
  • Enable a Content Security Policy (CSP) in report-only mode to surface inline script execution on rendered pages.

Monitoring Recommendations

  • Log and alert on shortcode content changes made by non-editor accounts.
  • Monitor WordPress audit logs for role changes, plugin installations, and option modifications following page views by privileged users.
  • Track browser telemetry for anomalous script execution on pages that render the affected shortcode.

How to Mitigate CVE-2025-10189

Immediate Actions Required

  • Deactivate the BP Direct Menus plugin until a patched release is confirmed to be installed.
  • Audit all posts and pages for the bpdm_login shortcode and remove or sanitize any suspicious attribute values.
  • Restrict contributor-level account creation and review existing low-privilege accounts for legitimacy.

Patch Information

No fixed version is identified in the referenced advisory at the time of publication. Monitor the Wordfence Vulnerability Report and the plugin's WordPress.org listing for an updated release. Apply the patched version as soon as it becomes available.

Workarounds

  • Remove the plugin entirely if the bpdm_login shortcode is not required for site functionality.
  • Deploy a web application firewall (WAF) rule that blocks shortcode attribute values containing HTML tags or JavaScript event handlers.
  • Enforce a strict Content Security Policy that disallows inline scripts to limit exploitation impact.
bash
# Disable the plugin via WP-CLI while awaiting a patch
wp plugin deactivate bp-direct-menus
wp plugin delete bp-direct-menus

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.