{"id":"CVE-2026-110252","kind":"vulnerability","aliases":["CVE-2026-110252"],"related":[],"title":"WPeMatico RSS Feed Fetcher WordPress plugin: stored XSS through imported feed content","description":"The WPeMatico RSS Feed Fetcher plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to, and including, 2.9 This is due to the plugin removing WordPress's wp_filter_post_kses filter from content_save_pre immediately before calling wp_insert_post() with RSS feed content, whenever the campaign's last editor had the unfiltered_html capability — a flag the plugin sets automatically for every admin-saved campaign. Imported item content is taken raw from $item->get_content(), only entity-decoded, and stored verbatim in post_content. This makes it possible for unauthenticated attackers, who publish or compromise an RSS feed that an administrator has subscribed a WPeMatico campaign to, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected imported post.","summary":"Versions up to and including 2.9 of the WPeMatico RSS Feed Fetcher plugin import RSS item content without the WordPress KSES filter when the campaign's last editor has unfiltered_html, so the stored post keeps raw script. An attacker who controls a feed an administrator subscribed to can make scripts run in the browser of any user who opens the injected imported post.","severity":"medium","cvss":5.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","wordpress","wpematico"],"not_affected_if":["no-wpematico","trusted-feeds-only"],"how_to_check":"- Check the installed WPeMatico version in the WordPress plugins list or in `wp-content/plugins/wpematico/` and see whether it is `2.9` or lower\n- Review the WPeMatico campaigns to see whether any feed is subscribed that an outside party could publish to\n- unknown","fix":"- Update the WPeMatico RSS Feed Fetcher plugin to a version later than `2.9`; the sources do not name the fixed version\n- unknown","status":"open","published_at":"2026-10-16T07:17:11+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","triaged_at":"2026-10-25T04:18:40+00:00","updated_at":"2026-10-25T04:18:40+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-25T04:18:40Z","model":"claude-haiku-5-5","output":{"fix":"- Update the WPeMatico RSS Feed Fetcher plugin to a version later than `2.9`; the sources do not name the fixed version\n- unknown","reach":"internet","title":"WPeMatico RSS Feed Fetcher WordPress plugin: stored XSS through imported feed content","impact":"medium","summary":"Versions up to and including 2.9 of the WPeMatico RSS Feed Fetcher plugin import RSS item content without the WordPress KSES filter when the campaign's last editor has unfiltered_html, so the stored post keeps raw script. An attacker who controls a feed an administrator subscribed to can make scripts run in the browser of any user who opens the injected imported post.","category":"package","nicknames":[],"who_cares":["wordpress","wpematico","self-hosted"],"confidence":0.6,"needs_auth":"no","worst_case":"Scripts run in visitors' browsers on the WordPress site, enabling session theft.","analyst_note":"Confirm the fixed version of WPeMatico after 2.9 and whether a patch is available, via the NVD entry https://nvd.nist.gov/vuln/detail/CVE-2026-110252.","how_to_check":"- Check the installed WPeMatico version in the WordPress plugins list or in `wp-content/plugins/wpematico/` and see whether it is `2.9` or lower\n- Review the WPeMatico campaigns to see whether any feed is subscribed that an outside party could publish to\n- unknown","needs_analyst":true,"not_affected_if":["no-wpematico","trusted-feeds-only"],"who_is_affected":"Sites running WPeMatico 2.9 or earlier with at least one campaign that pulls from an RSS feed not fully controlled by the site. The exposure depends on an administrator's campaign pulling from an external feed that an attacker can publish to or compromise. Sites without the plugin, or where all feeds are internal and trusted, can skip this.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000705,"input_tokens":3520,"output_tokens":707,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-110252':15A,18A '-2026':14A,17A '2.9':30B,111C 'access':219C 'admin':160C 'admin-sav':159C 'administr':70B,199C 'arbitrari':208C 'attack':64B,189C 'automat':156C 'browser':79B 'call':132C 'campaign':49B,142C,162C,204C 'capabl':150C 'compromis':193C 'content':12A,41B,127C,139C,165C,172C,182C 'control':66B 'cross':102C 'cross-sit':101C 'cve':13A,16A 'decod':176C 'due':114C 'editor':52B,145C 'entiti':175C 'entity-decod':174C 'everi':158C 'execut':215C 'feed':3A,11A,35B,68B,92C,138C,196C 'fetcher':4A,36B,93C 'filter':46B,122C,125C 'flag':152C 'get':171C 'host':22B 'html':55B,149C 'immedi':130C 'import':10A,38B,87B,163C,222C 'includ':29B,110C 'inject':86B,207C,221C 'insert':134C 'item':40B,164C,170C 'keep':60B 'kses':45B,124C 'last':51B,144C 'make':74B,184C 'open':84B 'packag':19B 'page':212C 'plugin':6A,37B,94C,117C,154C 'possibl':186C 'post':59B,88B,123C,135C,181C,223C 'pre':129C 'publish':191C 'raw':61B,168C 'remov':118C 'rss':2A,34B,39B,91C,137C,195C 'run':76B 'save':128C,161C 'script':62B,75B,104C,210C 'self':21B 'self-host':20B 'set':155C 'site':103C 'store':7A,58B,100C,178C 'subscrib':71B,201C 'taken':167C 'unauthent':188C 'unfilt':54B,148C 'user':82B,218C 'verbatim':179C 'version':25B,106C 'vulner':98C 'web':209C 'whenev':140C,216C 'without':42B 'wordpress':5A,23B,44B,96C,119C 'wp':121C,133C 'wpematico':1A,24B,33B,90C,203C 'xss':8A","nicknames":[],"mitigations":[],"who_affected":"Sites running WPeMatico 2.9 or earlier with at least one campaign that pulls from an RSS feed not fully controlled by the site. The exposure depends on an administrator's campaign pulling from an external feed that an attacker can publish to or compromise. Sites without the plugin, or where all feeds are internal and trusted, can skip this.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T07:17:11+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/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-110252","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-110252","severity":null,"published_at":"2026-10-16T07:17:11+00:00","modified_at":"2026-10-16T15:17:10+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"}