{"id":"CVE-2026-104812","kind":"vulnerability","aliases":["CVE-2026-104812"],"related":[],"title":"Redux Framework WordPress plugin: stored script injection via multi-media field keys","description":"The Redux Framework plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'multi_media' Field Array Key in all versions due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The wp_kses_post sanitization applied at save time operates only on array leaf values, leaving array keys entirely unsanitized; the injected key is then rendered directly into an id=\"filelist-<KEY>\" HTML attribute without esc_attr() in Redux_Multi_Media::render(), allowing attribute breakout.","summary":"The Redux Framework plugin for WordPress fails to sanitize array keys in its 'multi_media' field, so a logged-in subscriber can save a crafted key. That key is rendered unescaped into an HTML attribute, letting injected scripts run for any user who opens the affected page.","severity":"medium","cvss":6.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","redux-framework","self-hosted","wordpress"],"not_affected_if":["multi-media-field-unused","no-subscriber-accounts","plugin-not-installed"],"how_to_check":"- Check whether the Redux Framework plugin is installed on the WordPress site, in the plugins list or `wp plugin list`.\n- Look for a Redux version in the plugin's readme or main file; the sources do not give a fixed version.","fix":null,"status":"open","published_at":"2026-11-05T05:18:18+00:00","first_seen_at":"2026-11-05T05:31:54+00:00","triaged_at":"2026-11-05T05:33:43+00:00","updated_at":"2026-11-05T05:33:43+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-05T05:33:43Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"internet","title":"Redux Framework WordPress plugin: stored script injection via multi-media field keys","impact":"medium","summary":"The Redux Framework plugin for WordPress fails to sanitize array keys in its 'multi_media' field, so a logged-in subscriber can save a crafted key. That key is rendered unescaped into an HTML attribute, letting injected scripts run for any user who opens the affected page.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","redux-framework","self-hosted"],"confidence":0.7,"fix_status":"unknown","needs_auth":"yes","worst_case":"Scripts run in visitors' browsers on the site, stealing sessions","analyst_note":"Find a fixed Redux Framework version and confirm the multi_media field usage at https://nvd.nist.gov/vuln/detail/CVE-2026-104812 or the plugin's changelog.","how_to_check":"- Check whether the Redux Framework plugin is installed on the WordPress site, in the plugins list or `wp plugin list`.\n- Look for a Redux version in the plugin's readme or main file; the sources do not give a fixed version.","plain_action":"","needs_analyst":true,"not_affected_if":["plugin-not-installed","no-subscriber-accounts","multi-media-field-unused"],"who_is_affected":"Sites running the Redux Framework plugin for WordPress that use the multi-media field and allow subscriber-level accounts. Anonymous visitors cannot inject the script, and sites without the plugin are not affected. The sources state that all versions are affected.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000737,"input_tokens":4369,"output_tokens":600,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-104812':16A,19A '-2026':15A,18A 'access':118C,134C 'affect':74B 'allow':179C 'appli':143C 'arbitrari':123C 'array':37B,94C,150C,154C 'attack':113C 'attr':173C 'attribut':63B,170C,180C 'authent':112C 'breakout':181C 'craft':53B 'cross':87C 'cross-sit':86C 'cve':14A,17A 'direct':164C 'due':99C 'entir':156C 'esc':172C 'escap':106C 'execut':130C 'fail':34B 'field':12A,43B,93C 'filelist':168C 'framework':2A,23B,30B,78C 'host':26B 'html':62B,169C 'id':167C 'inject':7A,65B,122C,136C,159C 'input':102C 'insuffici':101C 'key':13A,38B,54B,56B,95C,155C,160C 'kses':140C 'leaf':151C 'leav':153C 'let':64B 'level':117C 'log':47B 'logged-in':46B 'make':108C 'media':11A,42B,92C,177C 'multi':10A,41B,91C,176C 'multi-media':9A 'open':72B 'oper':147C 'output':105C 'packag':20B 'page':75B,127C,137C 'plugin':4A,31B,79C 'possibl':110C 'post':141C 'redux':1A,22B,29B,77C,175C 'redux-framework':21B 'render':58B,163C,178C 'run':67B 'sanit':36B,103C,142C 'save':51B,145C 'script':6A,66B,89C,125C 'self':25B 'self-host':24B 'site':88C 'store':5A,85C 'subscrib':49B,116C 'subscriber-level':115C 'time':146C 'unescap':59B 'unsanit':157C 'user':70B,133C 'valu':152C 'version':98C 'via':8A,90C 'vulner':83C 'web':124C 'whenev':131C 'without':171C 'wordpress':3A,27B,33B,81C 'wp':139C","nicknames":[],"mitigations":[],"who_affected":"Sites running the Redux Framework plugin for WordPress that use the multi-media field and allow subscriber-level accounts. Anonymous visitors cannot inject the script, and sites without the plugin are not affected. The sources state that all versions are affected.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["medium","package","reduxframework","selfhosted","wordpress"],"campaign_type":null,"first_public_at":"2026-11-05T05:18:18+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/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-104812","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-104812","severity":null,"published_at":"2026-11-05T05:18:18+00:00","modified_at":"2026-11-05T05:18:18+00:00","first_seen_at":"2026-11-05T05:31:54+00:00","fetched_at":"2026-11-05T05:31:54+00:00","note":null}],"documents":[],"exploit_sources":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}