{"id":"CVE-2026-111070","aliases":["EUVD-2026-114655","GHSA-2r7v-fqcv-v2p7"],"status":"published","title":"Content Pilot \u003c= 2.2.4 - Unauthenticated Stored Cross-Site Scripting via RSS-linked article `\u003cmeta name=\"description\"\u003e`","description":"The Content Pilot – Autoblogging \u0026 Affiliate Marketing Suite plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to, and including, 2.2.4. This is due to the plugin extracting the HTML meta description from each remotely-fetched article (WPCP_Readability::parse_meta()), piping that value through the article template substitution and html_entity_decode() in WPCP_Module::insert_post(), and then calling wp_insert_post() after switching the current user to the configured campaign author (an Administrator with the unfiltered_html capability by default) — so no wp_kses_post sanitization is applied to the attacker-controlled HTML before it is persisted as post_content and rendered on the front end. This makes it possible for unauthenticated attackers who control the content of any RSS source an administrator has configured a Content Pilot RSS campaign to consume to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","severity":{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00221,"percentile":0.12822,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-79"],"published":"2026-10-31T07:46:52Z","modified":"2026-11-02T16:19:19Z","products":[{"vendor":"pluginever","product":"content pilot – autoblogging \u0026 affiliate marketing suite"}],"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/e3afda72-c10b-46e0-b187-03bcaeb77ea4?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/wp-content-pilot/tags/2.2.4/includes/class-wpcp-module.php#L425"},{"url":"https://plugins.trac.wordpress.org/browser/wp-content-pilot/tags/2.2.4/includes/class-wpcp-module.php#L315"},{"url":"https://plugins.trac.wordpress.org/browser/wp-content-pilot/tags/2.2.4/includes/modules/class-wpcp-feed.php#L204"},{"url":"https://plugins.trac.wordpress.org/browser/wp-content-pilot/tags/2.2.4/includes/class-wpcp-readability.php#L182"},{"url":"https://plugins.trac.wordpress.org/browser/wp-content-pilot/tags/2.2.4/includes/class-wpcp-readability.php#L274"},{"url":"https://plugins.trac.wordpress.org/browser/wp-content-pilot/tags/2.2.5/includes/class-wpcp-module.php"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-111070"},{"url":"https://github.com/advisories/GHSA-2r7v-fqcv-v2p7"}],"sources":{"cve":[{"id":"CVE-2026-111070","title":"Content Pilot \u003c= 2.2.4 - Unauthenticated Stored Cross-Site Scripting via RSS-linked article `\u003cmeta name=\"description\"\u003e`","description":"The Content Pilot – Autoblogging \u0026 Affiliate Marketing Suite plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to, and including, 2.2.4. This is due to the plugin extracting the HTML meta description from each remotely-fetched article (WPCP_Readability::parse_meta()), piping that value through the article template substitution and html_entity_decode() in WPCP_Module::insert_post(), and then calling wp_insert_post() after switching the current user to the configured campaign author (an Administrator with the unfiltered_html capability by default) — so no wp_kses_post sanitization is applied to the attacker-controlled HTML before it is persisted as post_content and rendered on the front end. This makes it possible for unauthenticated attackers who control the content of any RSS source an administrator has configured a Content Pilot RSS campaign to consume to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","status":"published","published":"2026-10-31T07:46:52.404Z","modified":"2026-11-01T17:34:19.236Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:20:15.34316Z"}],"euvd":[{"id":"EUVD-2026-114655","description":"The Content Pilot – Autoblogging \u0026 Affiliate Marketing Suite plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to, and including, 2.2.4. This is due to the plugin extracting the HTML meta description from each remotely-fetched article (WPCP_Readability::parse_meta()), piping that value through the article template substitution and html_entity_decode() in WPCP_Module::insert_post(), and then calling wp_insert_post() after switching the current user to the configured campaign author (an Administrator with the unfiltered_html capability by default) — so no wp_kses_post sanitization is applied to the attacker-controlled HTML before it is persisted as post_content and rendered on the front end. This makes it possible for unauthenticated attackers who control the content of any RSS source an administrator has configured a Content Pilot RSS campaign to consume to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","status":"published","published":"2026-10-31T07:46:52Z","modified":"2026-11-01T17:34:19Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T16:58:48.316156Z"}],"ghsa":[{"id":"GHSA-2r7v-fqcv-v2p7","title":"The Content Pilot – Autoblogging \u0026 Affiliate Marketing Suite plugin for WordPress is vulnerable...","description":"The Content Pilot – Autoblogging \u0026 Affiliate Marketing Suite plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to, and including, 2.2.4. This is due to the plugin extracting the HTML meta description from each remotely-fetched article (WPCP_Readability::parse_meta()), piping that value through the article template substitution and html_entity_decode() in WPCP_Module::insert_post(), and then calling wp_insert_post() after switching the current user to the configured campaign author (an Administrator with the unfiltered_html capability by default) — so no wp_kses_post sanitization is applied to the attacker-controlled HTML before it is persisted as post_content and rendered on the front end. This makes it possible for unauthenticated attackers who control the content of any RSS source an administrator has configured a Content Pilot RSS campaign to consume to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","status":"published","published":"2026-10-31T09:31:13Z","modified":"2026-10-31T09:31:25Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:14:53.83641Z"}],"nvd":[{"id":"CVE-2026-111070","description":"The Content Pilot – Autoblogging \u0026 Affiliate Marketing Suite plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to, and including, 2.2.4. This is due to the plugin extracting the HTML meta description from each remotely-fetched article (WPCP_Readability::parse_meta()), piping that value through the article template substitution and html_entity_decode() in WPCP_Module::insert_post(), and then calling wp_insert_post() after switching the current user to the configured campaign author (an Administrator with the unfiltered_html capability by default) — so no wp_kses_post sanitization is applied to the attacker-controlled HTML before it is persisted as post_content and rendered on the front end. This makes it possible for unauthenticated attackers who control the content of any RSS source an administrator has configured a Content Pilot RSS campaign to consume to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","status":"published","published":"2026-10-31T08:16:48.323Z","modified":"2026-11-02T16:19:19.997Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T20:51:44.219211Z"}]}}
