{"id":"CVE-2026-89051","kind":"vulnerability","aliases":["CVE-2026-89051"],"related":[],"title":"WP Ghost WordPress plugin: stored XSS via replaceHeadersAndTags up to 7.0.12","description":"The WP Ghost (Hide My WP Ghost) – Security & Firewall plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'replaceHeadersAndTags' function in versions up to, and including, 7.0.12 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user clicks on the injected link.","summary":"The WP Ghost (Hide My WP Ghost) security plugin for WordPress fails to sanitize and escape input in its replaceHeadersAndTags function, up to and including version 7.0.12. An unauthenticated attacker can store JavaScript that runs in a visitor's browser when they click the injected link.","severity":"high","cvss":7.2,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","wordpress","wp-plugin"],"not_affected_if":["plugin-not-installed"],"how_to_check":"- Check the installed version of the WP Ghost plugin in the WordPress admin under Plugins, or with `wp plugin get ghost --field=version` if the plugin slug is `ghost`; unknown if the slug differs.\n- Flag any installed version at or below `7.0.12`.","fix":"- Update the WP Ghost (Hide My WP Ghost) plugin to a version later than `7.0.12`; the sources do not name the patched version, so unknown.","status":"open","published_at":"2026-10-16T06:17:12+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","triaged_at":"2026-10-25T03:29:45+00:00","updated_at":"2026-10-25T03:29:45+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T03:29:45Z","model":"claude-haiku-5-5","output":{"fix":"- Update the WP Ghost (Hide My WP Ghost) plugin to a version later than `7.0.12`; the sources do not name the patched version, so unknown.","reach":"internet","title":"WP Ghost WordPress plugin: stored XSS via replaceHeadersAndTags up to 7.0.12","impact":"medium","summary":"The WP Ghost (Hide My WP Ghost) security plugin for WordPress fails to sanitize and escape input in its replaceHeadersAndTags function, up to and including version 7.0.12. An unauthenticated attacker can store JavaScript that runs in a visitor's browser when they click the injected link.","category":"package","nicknames":[],"who_cares":["wordpress","wp-plugin","self-hosted"],"confidence":0.7,"needs_auth":"no","worst_case":"Script runs in a visitor's browser, stealing sessions or actions.","analyst_note":"Confirm the patched plugin version and the exact plugin slug from the vendor changelog or the NVD page (https://nvd.nist.gov/vuln/detail/CVE-2026-89051).","how_to_check":"- Check the installed version of the WP Ghost plugin in the WordPress admin under Plugins, or with `wp plugin get ghost --field=version` if the plugin slug is `ghost`; unknown if the slug differs.\n- Flag any installed version at or below `7.0.12`.","needs_analyst":true,"not_affected_if":["plugin-not-installed"],"who_is_affected":"Sites running the WP Ghost (Hide My WP Ghost) plugin at version 7.0.12 or earlier are exposed, because the flaw is reachable without logging in. Sites without this plugin installed are not affected. The sources do not say whether non-default settings are needed.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000665,"input_tokens":3385,"output_tokens":652,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-89051':14A,17A '7.0.12':11A,52B,102C 'arbitrari':120C 'attack':55B,117C 'browser':65B 'click':68B,131C 'cross':89C 'cross-sit':88C 'cve':12A,15A 'due':103C 'escap':41B,110C 'execut':127C 'fail':37B 'firewal':80C 'function':46B,95C 'ghost':2A,28B,32B,74C,78C 'hide':29B,75C 'host':21B 'includ':50B,101C 'inject':70B,119C,134C 'input':42B,106C 'insuffici':105C 'javascript':58B 'link':71B,135C 'make':112C 'output':109C 'packag':18B 'page':124C 'plugin':4A,25B,34B,81C 'possibl':114C 'replaceheadersandtag':8A,45B,94C 'run':60B 'sanit':39B,107C 'script':91C,122C 'secur':33B,79C 'self':20B 'self-host':19B 'site':90C 'store':5A,57B,87C 'unauthent':54B,116C 'user':130C 'version':51B,97C 'via':7A,92C 'visitor':63B 'vulner':85C 'web':121C 'whenev':128C 'wordpress':3A,22B,36B,83C 'wp':1A,24B,27B,31B,73C,77C 'wp-plugin':23B 'xss':6A","nicknames":[],"mitigations":[],"who_affected":"Sites running the WP Ghost (Hide My WP Ghost) plugin at version 7.0.12 or earlier are exposed, because the flaw is reachable without logging in. Sites without this plugin installed are not affected. The sources do not say whether non-default settings are needed.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T06:17:12+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-89051","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-89051","severity":null,"published_at":"2026-10-16T06:17:12+00:00","modified_at":"2026-10-16T15:17:33+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","fetched_at":"2026-10-23T22:28:55+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}