{"id":"CVE-2026-118587","kind":"vulnerability","aliases":["CVE-2026-118587"],"related":[],"title":"PowerPress Podcasting WordPress plugin: stored cross-site scripting via width parameter","description":"The PowerPress Podcasting plugin by Blubrry plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'width' parameter in all versions up to, and including, 11.18.0 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This vulnerability is only exploitable when the site's configured video player is set to html5video, or when the media URL uses a .webm or .ogv extension, as these conditions are required to route the shortcode attributes through the vulnerable powerpressplayer_build_html5video() builder. Successful exploitation additionally requires an action by an editor — the attacker cannot trigger the vulnerability on their own.","summary":"The PowerPress Podcasting plugin for WordPress does not sanitize the 'width' shortcode attribute, so script injected there is stored and runs in the browser of anyone who opens the affected page. An attacker with contributor-level access can plant the script, and it executes when an editor acts on the injected page.","severity":"medium","cvss":5.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["blubrry","package","powerpress","wordpress"],"not_affected_if":["default-player-settings","no-contributor-accounts","plugin-not-installed"],"how_to_check":"- Check whether the PowerPress plugin (Blubrry) is installed and its version is `11.18.0` or earlier\n- Check whether the player is set to `html5video` or media URLs use `.webm` or `.ogv` extensions\n- Search post content for `width=` attributes in PowerPress shortcodes containing script-like text","fix":null,"status":"open","published_at":"2026-11-13T10:17:26+00:00","first_seen_at":"2026-11-13T10:47:10+00:00","triaged_at":"2026-11-13T10:57:03+00:00","updated_at":"2026-11-13T10:57:03+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-13T10:57:03Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"network","title":"PowerPress Podcasting WordPress plugin: stored cross-site scripting via width parameter","impact":"medium","summary":"The PowerPress Podcasting plugin for WordPress does not sanitize the 'width' shortcode attribute, so script injected there is stored and runs in the browser of anyone who opens the affected page. An attacker with contributor-level access can plant the script, and it executes when an editor acts on the injected page.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","powerpress","blubrry"],"confidence":0.8,"fix_status":"unknown","needs_auth":"yes","worst_case":"Injected scripts run in editors' and visitors' browsers on the site","analyst_note":"","how_to_check":"- Check whether the PowerPress plugin (Blubrry) is installed and its version is `11.18.0` or earlier\n- Check whether the player is set to `html5video` or media URLs use `.webm` or `.ogv` extensions\n- Search post content for `width=` attributes in PowerPress shortcodes containing script-like text","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["plugin-not-installed","default-player-settings","no-contributor-accounts"],"who_is_affected":"Sites running the PowerPress Podcasting plugin up to and including 11.18.0 that use the html5video player or serve .webm or .ogv media. Exploitation needs a contributor account and an editor action on the injected page. Sites without the plugin or without those player settings are not exposed.","user_interaction":"yes","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000764,"input_tokens":4741,"output_tokens":580,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-118587':15A,18A '-2026':14A,17A '11.18.0':104C 'access':60B,124C,140C 'act':71B 'action':193C 'addit':190C 'affect':52B 'anyon':48B 'arbitrari':129C 'attack':55B,119C,198C 'attribut':35B,180C 'authent':118C 'blubrri':19B,81C 'browser':46B 'build':185C 'builder':187C 'cannot':199C 'condit':173C 'configur':153C 'contributor':58B,122C 'contributor-level':57B,121C 'cross':7A,90C 'cross-sit':6A,89C 'cve':13A,16A 'due':105C 'editor':70B,196C 'escap':112C 'execut':67B,136C 'exploit':148C,189C 'extens':170C 'html5video':159C,186C 'includ':103C 'inject':38B,74B,128C,142C 'input':108C 'insuffici':107C 'level':59B,123C 'make':114C 'media':163C 'ogv':169C 'open':50B 'output':111C 'packag':20B 'page':53B,75B,133C,143C 'paramet':12A,96C 'plant':62B 'player':155C 'plugin':4A,26B,79C,82C 'podcast':2A,25B,78C 'possibl':116C 'powerpress':1A,21B,24B,77C 'powerpressplay':184C 'requir':175C,191C 'rout':177C 'run':43B 'sanit':31B,109C 'script':9A,37B,64B,92C,131C 'set':157C 'shortcod':34B,179C 'site':8A,91C,151C 'store':5A,41B,88C 'success':188C 'trigger':200C 'url':164C 'use':165C 'user':139C 'version':99C 'via':10A,93C 'video':154C 'vulner':86C,145C,183C,202C 'web':130C 'webm':167C 'whenev':137C 'width':11A,33B,95C 'wordpress':3A,22B,28B,84C","nicknames":[],"mitigations":[],"who_affected":"Sites running the PowerPress Podcasting plugin up to and including 11.18.0 that use the html5video player or serve .webm or .ogv media. Exploitation needs a contributor account and an editor action on the injected page. Sites without the plugin or without those player settings are not exposed.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["blubrry","medium","package","powerpress","wordpress"],"campaign_type":null,"search_a":"'-118587':15A,18A '-2026':14A,17A 'cross':7A 'cross-sit':6A 'cve':13A,16A 'paramet':12A 'plugin':4A 'podcast':2A 'powerpress':1A 'script':9A 'site':8A 'store':5A 'via':10A 'width':11A 'wordpress':3A","search_b":"'access':60B 'act':71B 'affect':52B 'anyon':48B 'attack':55B 'attribut':35B 'blubrri':19B 'browser':46B 'contributor':58B 'contributor-level':57B 'editor':70B 'execut':67B 'inject':38B,74B 'level':59B 'open':50B 'packag':20B 'page':53B,75B 'plant':62B 'plugin':26B 'podcast':25B 'powerpress':21B,24B 'run':43B 'sanit':31B 'script':37B,64B 'shortcod':34B 'store':41B 'width':33B 'wordpress':22B,28B","search_c":"'11.18.0':104C 'access':124C,140C 'action':193C 'addit':190C 'arbitrari':129C 'attack':119C,198C 'attribut':180C 'authent':118C 'blubrri':81C 'build':185C 'builder':187C 'cannot':199C 'condit':173C 'configur':153C 'contributor':122C 'contributor-level':121C 'cross':90C 'cross-sit':89C 'due':105C 'editor':196C 'escap':112C 'execut':136C 'exploit':148C,189C 'extens':170C 'html5video':159C,186C 'includ':103C 'inject':128C,142C 'input':108C 'insuffici':107C 'level':123C 'make':114C 'media':163C 'ogv':169C 'output':111C 'page':133C,143C 'paramet':96C 'player':155C 'plugin':79C,82C 'podcast':78C 'possibl':116C 'powerpress':77C 'powerpressplay':184C 'requir':175C,191C 'rout':177C 'sanit':109C 'script':92C,131C 'set':157C 'shortcod':179C 'site':91C,151C 'store':88C 'success':188C 'trigger':200C 'url':164C 'use':165C 'user':139C 'version':99C 'via':93C 'video':154C 'vulner':86C,145C,183C,202C 'web':130C 'webm':167C 'whenev':137C 'width':95C 'wordpress':84C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-13T10:17:26+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-118587","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118587","severity":null,"published_at":"2026-11-13T10:17:26+00:00","modified_at":"2026-11-13T10:17:26+00:00","first_seen_at":"2026-11-13T10:47:10+00:00","fetched_at":"2026-11-13T10:47:10+00:00","note":null}],"documents":[],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}