{"id":"CVE-2026-110291","kind":"vulnerability","aliases":["CVE-2026-110291"],"related":[],"title":"Graphina Elementor charts plugin: stored XSS through chart font settings","description":"The Graphina – Charts and Graphs For Elementor plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'iq_tree_chart_node_font_family (and any text control serialized into chart_data['settings'])' parameter in all versions up to, and including, 3.1.13 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 accesses an injected page. Elementor's Utils::kses_post_deep() does not strip the attack payload on save because the payload contains no disallowed HTML tags — only a single quote and an event-handler fragment — allowing the malicious value to survive persistence.","summary":"The Graphina charts plugin for WordPress, up to and including 3.1.13, fails to sanitize chart settings such as the tree chart font family, so injected script is saved into pages. The script runs in the browser of any user who opens an affected page, which can lead to session or account takeover of visitors and administrators.","severity":"high","cvss":7.2,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["elementor","graphina","package","self-hosted","wordpress"],"not_affected_if":["plugin-removed","plugin-version-above-3.1.13"],"how_to_check":"- Check the installed Graphina plugin version in the WordPress admin Plugins screen or with `wp plugin get graphina-elementor-charts-and-graphs` (slug unknown from sources)\n- Look for Graphina chart widgets in Elementor pages whose settings contain quote characters or event-handler attributes such as `onerror` or `onmouseover`","fix":"- Plugin versions up to and including `3.1.13` are affected; the sources do not state a fixed version","status":"open","published_at":"2026-11-06T09:16:59+00:00","first_seen_at":"2026-11-06T09:40:32+00:00","triaged_at":"2026-11-06T09:40:43+00:00","updated_at":"2026-11-06T09:40:43+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-06T09:40:43Z","model":"claude-haiku-5-5","output":{"fix":"- Plugin versions up to and including `3.1.13` are affected; the sources do not state a fixed version","reach":"internet","title":"Graphina Elementor charts plugin: stored XSS through chart font settings","impact":"medium","summary":"The Graphina charts plugin for WordPress, up to and including 3.1.13, fails to sanitize chart settings such as the tree chart font family, so injected script is saved into pages. The script runs in the browser of any user who opens an affected page, which can lead to session or account takeover of visitors and administrators.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","elementor","graphina","self-hosted"],"confidence":0.6,"fix_status":"unknown","needs_auth":"unknown","worst_case":"Injected script runs in visitors' and administrators' browsers","analyst_note":"Confirm the fixed plugin version and whether the attack needs authentication; the NVD entry at https://nvd.nist.gov/vuln/detail/CVE-2026-110291 was the only source given.","how_to_check":"- Check the installed Graphina plugin version in the WordPress admin Plugins screen or with `wp plugin get graphina-elementor-charts-and-graphs` (slug unknown from sources)\n- Look for Graphina chart widgets in Elementor pages whose settings contain quote characters or event-handler attributes such as `onerror` or `onmouseover`","plain_action":"","needs_analyst":true,"not_affected_if":["plugin-removed","plugin-version-above-3.1.13"],"who_is_affected":"Sites running the Graphina charts plugin for Elementor at version 3.1.13 or earlier are exposed. The flaw is in how chart settings are stored and printed on pages, so any site with the plugin and Elementor pages that use its charts is in scope. Sites that have removed the plugin are not affected.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000781,"input_tokens":4380,"output_tokens":686,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-110291':13A,16A '-2026':12A,15A '3.1.13':34B,123C 'access':152C 'account':74B 'administr':79B 'affect':66B 'allow':188C 'arbitrari':141C 'attack':138C,166C 'browser':59B 'chart':3A,8A,26B,38B,44B,82C,102C,112C 'contain':173C 'control':109C 'cross':95C 'cross-sit':94C 'cve':11A,14A 'data':113C 'deep':161C 'disallow':175C 'due':124C 'elementor':2A,17B,86C,156C 'escap':131C 'event':185C 'event-handl':184C 'execut':148C 'fail':35B 'famili':46B,105C 'font':9A,45B,104C 'fragment':187C 'graph':84C 'graphina':1A,18B,25B,81C 'handler':186C 'host':22B 'html':176C 'includ':33B,122C 'inject':48B,140C,154C 'input':127C 'insuffici':126C 'iq':100C 'kses':159C 'lead':70B 'make':133C 'malici':190C 'node':103C 'open':64B 'output':130C 'packag':19B 'page':53B,67B,145C,155C 'paramet':115C 'payload':167C,172C 'persist':194C 'plugin':4A,27B,87C 'possibl':135C 'post':160C 'quot':181C 'run':56B 'sanit':37B,128C 'save':51B,169C 'script':49B,55B,97C,143C 'self':21B 'self-host':20B 'serial':110C 'session':72B 'set':10A,39B,114C 'singl':180C 'site':96C 'store':5A,93C 'strip':164C 'surviv':193C 'tag':177C 'takeov':75B 'text':108C 'tree':43B,101C 'unauthent':137C 'user':62B,151C 'util':158C 'valu':191C 'version':118C 'via':98C 'visitor':77B 'vulner':91C 'web':142C 'whenev':149C 'wordpress':23B,29B,89C 'xss':6A","nicknames":[],"mitigations":[],"who_affected":"Sites running the Graphina charts plugin for Elementor at version 3.1.13 or earlier are exposed. The flaw is in how chart settings are stored and printed on pages, so any site with the plugin and Elementor pages that use its charts is in scope. Sites that have removed the plugin are not affected.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"unknown","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["elementor","graphina","high","package","selfhosted","wordpress"],"campaign_type":null,"search_a":"'-110291':13A,16A '-2026':12A,15A 'chart':3A,8A 'cve':11A,14A 'elementor':2A 'font':9A 'graphina':1A 'plugin':4A 'set':10A 'store':5A 'xss':6A","search_b":"'3.1.13':34B 'account':74B 'administr':79B 'affect':66B 'browser':59B 'chart':26B,38B,44B 'elementor':17B 'fail':35B 'famili':46B 'font':45B 'graphina':18B,25B 'host':22B 'includ':33B 'inject':48B 'lead':70B 'open':64B 'packag':19B 'page':53B,67B 'plugin':27B 'run':56B 'sanit':37B 'save':51B 'script':49B,55B 'self':21B 'self-host':20B 'session':72B 'set':39B 'takeov':75B 'tree':43B 'user':62B 'visitor':77B 'wordpress':23B,29B","search_c":"'3.1.13':123C 'access':152C 'allow':188C 'arbitrari':141C 'attack':138C,166C 'chart':82C,102C,112C 'contain':173C 'control':109C 'cross':95C 'cross-sit':94C 'data':113C 'deep':161C 'disallow':175C 'due':124C 'elementor':86C,156C 'escap':131C 'event':185C 'event-handl':184C 'execut':148C 'famili':105C 'font':104C 'fragment':187C 'graph':84C 'graphina':81C 'handler':186C 'html':176C 'includ':122C 'inject':140C,154C 'input':127C 'insuffici':126C 'iq':100C 'kses':159C 'make':133C 'malici':190C 'node':103C 'output':130C 'page':145C,155C 'paramet':115C 'payload':167C,172C 'persist':194C 'plugin':87C 'possibl':135C 'post':160C 'quot':181C 'sanit':128C 'save':169C 'script':97C,143C 'serial':110C 'set':114C 'singl':180C 'site':96C 'store':93C 'strip':164C 'surviv':193C 'tag':177C 'text':108C 'tree':101C 'unauthent':137C 'user':151C 'util':158C 'valu':191C 'version':118C 'via':98C 'vulner':91C 'web':142C 'whenev':149C 'wordpress':89C","first_public_at":"2026-11-06T09:16:59+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-110291","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-110291","severity":null,"published_at":"2026-11-06T09:16:59+00:00","modified_at":"2026-11-06T09:17:00+00:00","first_seen_at":"2026-11-06T09:40:32+00:00","fetched_at":"2026-11-06T09:40:32+00:00","note":null}],"documents":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}