{"id":"CVE-2026-124493","kind":"vulnerability","aliases":["CVE-2026-124493"],"related":[],"title":"SunEditor: stored cross-site scripting in header handling runs attacker JavaScript","description":"SunEditor before 3.4.0 contains a stored cross-site scripting vulnerability in the DocumentType constructor that injects header textContent into innerHTML without HTML escaping. Attackers can store entity-encoded HTML in h1-h6 headers that executes JavaScript when editors using document:header mode initialize, enabling session cookie theft.","summary":"SunEditor, a browser rich-text editor library, injects header text into the page without escaping it, so HTML stored in h1-h6 headers runs as script when an editor in document:header mode loads. An attacker can steal session cookies from anyone who opens the stored content.","severity":"critical","cvss":9.3,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"suneditor","fixed":[],"affected":"","ecosystem":"npm"}],"ecosystems":["npm"],"tags":["javascript","package","suneditor","web-editor"],"not_affected_if":["document-header-mode-unused","no-suneditor"],"how_to_check":"- Check the installed `suneditor` version in `package.json` and the lockfile.\n- Search the code for `document:header` or the SunEditor DocumentType plugin use.","fix":"- Move to `3.4.0` or later, per the advisory the sources reference.","status":"open","published_at":"2026-11-08T14:18:19+00:00","first_seen_at":"2026-11-08T14:48:42+00:00","triaged_at":"2026-11-08T14:48:52+00:00","updated_at":"2026-11-08T14:48:52+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-08T14:48:52Z","model":"claude-haiku-5-5","output":{"fix":"- Move to `3.4.0` or later, per the advisory the sources reference.","reach":"internet","title":"SunEditor: stored cross-site scripting in header handling runs attacker JavaScript","impact":"high","summary":"SunEditor, a browser rich-text editor library, injects header text into the page without escaping it, so HTML stored in h1-h6 headers runs as script when an editor in document:header mode loads. An attacker can steal session cookies from anyone who opens the stored content.","audience":"developers","category":"package","nicknames":[],"who_cares":["javascript","web-editor","suneditor"],"confidence":0.6,"fix_status":"available","needs_auth":"unknown","worst_case":"Attacker script runs in victims' browsers and steals session cookies.","analyst_note":"Confirm the affected npm range and the 3.4.0 fix from the GitHub advisory and the VulnCheck page linked in the sources.","how_to_check":"- Check the installed `suneditor` version in `package.json` and the lockfile.\n- Search the code for `document:header` or the SunEditor DocumentType plugin use.\n- unknown","plain_action":"","product_name":"suneditor","needs_analyst":true,"not_affected_if":["no-suneditor","document-header-mode-unused"],"who_is_affected":"Applications that embed SunEditor and let users write or store content with headers in document:header mode are exposed, because stored markup executes for every editor that loads it. Apps that do not use the editor, or that do not use document:header mode, are less exposed. unknown for anything beyond that.","user_interaction":"yes","product_ecosystem":"npm","needs_special_setup":"yes","severity_if_unknown":"critical"},"cost_usd":0.000756,"input_tokens":4613,"output_tokens":590,"severity_before":"critical"},"analyst_status":null,"analyst_note":null,"search":"'-124493':15A,18A '-2026':14A,17A '3.4.0':77C 'anyon':69B 'attack':11A,63B,99C 'browser':28B 'constructor':89C 'contain':78C 'content':74B 'cooki':67B,123C 'cross':4A,82C 'cross-sit':3A,81C 'cve':13A,16A 'document':58B,117C 'documenttyp':88C 'editor':25B,32B,56B,115C 'enabl':121C 'encod':104C 'entiti':103C 'entity-encod':102C 'escap':41B,98C 'execut':112C 'h1':48B,108C 'h1-h6':47B,107C 'h6':49B,109C 'handl':9A 'header':8A,35B,50B,59B,92C,110C,118C 'html':44B,97C,105C 'initi':120C 'inject':34B,91C 'innerhtml':95C 'javascript':12A,20B,113C 'librari':33B 'load':61B 'mode':60B,119C 'open':71B 'packag':21B 'page':39B 'rich':30B 'rich-text':29B 'run':10A,51B 'script':6A,53B,84C 'session':66B,122C 'site':5A,83C 'steal':65B 'store':2A,45B,73B,80C,101C 'suneditor':1A,19A,22B,26B,75C 'text':31B,36B 'textcont':93C 'theft':124C 'use':116C 'vulner':85C 'web':24B 'web-editor':23B 'without':40B,96C","nicknames":[],"mitigations":[],"who_affected":"Applications that embed SunEditor and let users write or store content with headers in document:header mode are exposed, because stored markup executes for every editor that loads it. Apps that do not use the editor, or that do not use document:header mode, are less exposed. unknown for anything beyond that.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":["suneditor"],"ptokens":["suneditor"],"labels":["critical","javascript","npm","package","suneditor","webeditor"],"campaign_type":null,"search_a":"'-124493':15A,18A '-2026':14A,17A 'attack':11A 'cross':4A 'cross-sit':3A 'cve':13A,16A 'handl':9A 'header':8A 'javascript':12A 'run':10A 'script':6A 'site':5A 'store':2A 'suneditor':1A,19A","search_b":"'anyon':69B 'attack':63B 'browser':28B 'content':74B 'cooki':67B 'document':58B 'editor':25B,32B,56B 'escap':41B 'h1':48B 'h1-h6':47B 'h6':49B 'header':35B,50B,59B 'html':44B 'inject':34B 'javascript':20B 'librari':33B 'load':61B 'mode':60B 'open':71B 'packag':21B 'page':39B 'rich':30B 'rich-text':29B 'run':51B 'script':53B 'session':66B 'steal':65B 'store':45B,73B 'suneditor':22B,26B 'text':31B,36B 'web':24B 'web-editor':23B 'without':40B","search_c":"'3.4.0':77C 'attack':99C 'constructor':89C 'contain':78C 'cooki':123C 'cross':82C 'cross-sit':81C 'document':117C 'documenttyp':88C 'editor':115C 'enabl':121C 'encod':104C 'entiti':103C 'entity-encod':102C 'escap':98C 'execut':112C 'h1':108C 'h1-h6':107C 'h6':109C 'header':92C,110C,118C 'html':97C,105C 'initi':120C 'inject':91C 'innerhtml':95C 'javascript':113C 'mode':119C 'script':84C 'session':122C 'site':83C 'store':80C,101C 'suneditor':75C 'textcont':93C 'theft':124C 'use':116C 'vulner':85C 'without':96C","cause_entry":null,"cause_path":null,"first_public_at":"2026-10-23T18:48:41+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-124493","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-124493","severity":null,"published_at":"2026-11-08T14:18:19+00:00","modified_at":"2026-11-08T14:18:19+00:00","first_seen_at":"2026-11-08T14:48:42+00:00","fetched_at":"2026-11-08T14:48:42+00:00","note":null}],"documents":[{"id":102174,"url":"https://github.com/JiHong88/suneditor/security/advisories/GHSA-h9pq-57qf-vvfh","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-23T18:48:41+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":102175,"url":"https://www.vulncheck.com/advisories/suneditor-before-3.4.0-stored-xss-via-documenttype-header-textcontent","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}