CVE-2025-46449 Overview
CVE-2025-46449 is a stored Cross-Site Scripting (XSS) vulnerability in the Novium WoWHead Tooltips WordPress plugin. The flaw affects all versions of wowhead-tooltips up to and including 2.0.1. The plugin fails to properly neutralize user-supplied input during web page generation, allowing attackers to inject persistent JavaScript payloads. The issue is classified under CWE-79 (Improper Neutralization of Input During Web Page Generation).
Critical Impact
Authenticated attackers can inject malicious scripts that execute in the browsers of site visitors and administrators, enabling session theft, account takeover, and content manipulation across affected WordPress sites.
Affected Products
- Novium WoWHead Tooltips WordPress plugin versions through 2.0.1
- WordPress installations with wowhead-tooltips plugin enabled
- All WordPress versions hosting the vulnerable plugin
Discovery Timeline
- 2025-04-24 - CVE-2025-46449 published to NVD
- 2026-04-23 - Last updated in NVD database
Technical Details for CVE-2025-46449
Vulnerability Analysis
The WoWHead Tooltips plugin integrates World of Warcraft item tooltips into WordPress posts and pages. The plugin accepts user-supplied input that is later rendered in the page output without adequate sanitization or output encoding. An attacker with sufficient privileges can submit crafted input containing JavaScript that becomes stored in the database. When a victim loads a page containing the malicious payload, the script executes in their browser under the origin of the affected site.
Stored XSS in WordPress plugins is particularly impactful because the payload persists across sessions and affects every visitor who renders the compromised content. Exploitation requires user interaction, as a victim must view the page hosting the injected payload. The scope-changed nature of the issue means the executed script can affect resources beyond the vulnerable component, including authenticated administrator sessions.
Root Cause
The root cause is improper neutralization of input during web page generation. The plugin does not apply WordPress sanitization functions such as wp_kses_post(), esc_html(), or esc_attr() to user-controlled fields before storing or rendering them. This allows raw HTML and JavaScript to be persisted and later interpreted by the browser as executable markup rather than inert text.
Attack Vector
The vulnerability is exploitable over the network and requires user interaction to trigger execution. An attacker with the ability to submit content through the plugin's input vectors stores a malicious payload, such as a <script> tag or an HTML element with an event handler attribute. When an administrator or visitor browses to the affected page, the browser parses the injected markup and executes the attacker's JavaScript. Common follow-on actions include exfiltrating session cookies, performing actions through the WordPress REST API as the victim, or pivoting to install a malicious plugin.
The vulnerability is described in the Patchstack WordPress Vulnerability Report. No verified public exploit code is available at this time.
Detection Methods for CVE-2025-46449
Indicators of Compromise
- Unexpected <script> tags, javascript: URIs, or on* event handlers stored in WordPress post content, post meta, or plugin-specific database tables
- Outbound HTTP requests from visitor browsers to attacker-controlled domains originating from pages that embed WoWHead tooltips
- New or modified WordPress administrator accounts created shortly after a user views a page with embedded tooltip content
- Anomalous changes to plugin or theme files following administrator visits to tooltip-rendered pages
Detection Strategies
- Audit the wp_posts and plugin option tables for content containing script tags, inline event handlers, or encoded JavaScript payloads
- Review web server access logs for requests to pages embedding the WoWHead Tooltips shortcode followed by suspicious outbound activity
- Monitor WordPress audit logs for unusual privilege changes, plugin installations, or REST API calls performed by administrative users
Monitoring Recommendations
- Enable a Content Security Policy (CSP) in report-only mode to surface unexpected inline script execution on pages using the plugin
- Deploy a web application firewall rule that flags POST requests containing <script, onerror=, or onload= patterns targeting plugin endpoints
- Forward WordPress and web server logs to a centralized analytics platform to correlate content submissions with downstream session anomalies
How to Mitigate CVE-2025-46449
Immediate Actions Required
- Disable or remove the WoWHead Tooltips plugin until a patched version is confirmed available from the vendor
- Audit all existing posts, pages, and plugin settings for previously injected XSS payloads and remove malicious content
- Force a password reset for all administrator and editor accounts and invalidate active WordPress sessions
- Review installed plugins, themes, and administrator accounts for unauthorized changes that may have followed exploitation
Patch Information
At the time of publication, no fixed version has been identified in the available data. The vulnerability affects all versions through 2.0.1. Administrators should monitor the Patchstack advisory and the plugin's official channels for an updated release.
Workarounds
- Remove the wowhead-tooltips plugin directory from wp-content/plugins/ to fully disable the vulnerable code paths
- Restrict contributor and editor permissions so only trusted users can submit content rendered through the plugin
- Deploy a web application firewall with WordPress-specific XSS rulesets to filter malicious payloads targeting plugin parameters
- Implement a strict Content Security Policy that disallows inline scripts and untrusted script sources
# Disable the vulnerable plugin via WP-CLI
wp plugin deactivate wowhead-tooltips
wp plugin delete wowhead-tooltips
# Search the database for stored XSS indicators
wp db query "SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%<script%' OR post_content LIKE '%onerror=%' OR post_content LIKE '%javascript:%';"
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


