GHSA-v4jx-8pj6-w4w8: SunEditor before 3.4.0 Stored XSS via : Entity Sanitizer Bypass

Published Nov 8, 2026
·
Updated

SunEditor before 3.4.0 contains a stored cross-site scripting vulnerability because the html.clean() sanitizer's normalizeURL() function decodes named entities like : to an empty string. Attackers can inject href values such as javascript: that pass the isSafeURL() check but are decoded by browsers, executing JavaScript when victims click stored links.

Affected Software

1 affected component
npm/suneditor<3.4.0

Event History

Nov 8, 2026
CVE Published
via OSV·01:16 PM
Data Sourced
via OSV·01:16 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Who is exposed to this issue?

Applications using SunEditor versions before 3.4.0 are exposed if they allow attacker-controlled content to be stored and later rendered to other users. Exploitation requires a victim to click a stored malicious link.

2

What does an attacker need to exploit it?

An attacker needs a way to submit HTML content that SunEditor sanitizes and stores, such as content containing an href value like javascript&colon;. No authentication or special privileges are required according to the supplied vector, but victim interaction is required.

3

How can I tell whether my deployment is affected?

Check whether the application uses the npm suneditor package at a version earlier than 3.4.0. Also review stored editor content for href values using named entities that may decode into javascript: URLs, particularly javascript&colon;.

4

What should be done if upgrading is not immediately possible?

Prevent untrusted users from submitting or storing HTML links, or apply server-side validation that rejects URL schemes which decode to javascript:. Review and remove previously stored malicious links, since the vulnerability affects content that has already been saved.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203