# Hide My WP Ghost <= 7.0.15 - Unauthenticated Stored Cross-Site Scripting via Link Rewriting

- **ID:** WPSEC-2026-2131
- **Plugin:** Hide My WP Ghost – Security & Firewall (`hide-my-wp`), https://wordpress.org/plugins/hide-my-wp/
- **Affected versions:** all versions before 7.0.16
- **Fixed in:** 7.0.16 (Update to 7.0.16 or later.)
- **Severity:** Medium 5.4 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N)
- **Weakness:** CWE-79
- **Usage among sites WPSec scans:** plugin Low, affected versions None seen (as of 2026-10-30)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/hide-my-wp
- **Fix released:** 2026-10-29
- **Published:** 2026-10-30
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2131/

## Description

The Hide My WP Ghost plugin for WordPress is vulnerable to Stored Cross-Site Scripting via its output link-rewriting feature in all versions up to, and including, 7.0.15. When the 'hmwp_fix_relative' option is enabled, the link-rewriting regex callback (replaceLinks/_rel2abs in models/Rewrite.php) could capture a value that ran past an HTML tag boundary, and escaped '..\/' relative paths were not recognized, so attacker-influenced page content containing angle brackets was rewritten back into the page HTML. This makes it possible for unauthenticated attackers who can place content on the site, such as comments, to break the page markup and inject arbitrary web scripts that execute whenever a user accesses an affected page, provided the plugin's relative-link rewriting is active.

## References

- https://wpsec.com/vuln/WPSEC-2026-2131/
- https://plugins.svn.wordpress.org/hide-my-wp/tags/7.0.16/
- https://wordpress.org/plugins/hide-my-wp/

Source: WPSec, https://wpsec.com/vuln/WPSEC-2026-2131/

License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Free to use, share and adapt, also commercially, if you credit WPSec and link to this advisory.
