SunEditor: Critical XSS vulnerability - sanitizer bypass
Summary
SUNEDITOR v2.47.10 appears to allow JavaScript execution through crafted namespaced HTML elements.
The sanitization logic does not fully remove executable event-handler attributes from certain custom/namespaced tags. As a result, an attacker may be able to inject HTML content that executes JavaScript when the rendered element is interacted with.
This behavior was observed after the changes introduced in this commit:
https://github.com/JiHong88/suneditor/commit/9ed405fb0de676e56cd0e6a13c19c103ad5948d3
Affected Version
Confirmed vulnerable:
- SUNEDITOR =<
2.47.10
Potentially affected:
- Previous versions, if the same sanitization logic is still present
Proof of Concept
The following payload preserves an executable event handler:
<a:b src="/x"><iframe src=javascript:alert(1)></iframe></a:b>
<p><a:b src="/x" onclick="document.body.style.background='red'">click</a:b></p>
Simplified PoC:
<a:b src="/x" onclick="console.log('XSS:',document.domain,document.cookie)">click</a:b>
<p><a:b src="/x" onmouseover="alert('XSS — '+document.domain)">📎 Click here for solutions</a:b></p>
Steps to Reproduce
- Open SUNEDITOR using version
2.47.10. - Insert the payload above into the editor.
- Save or render the generated content.
- Click the generated element.
- Observe that JavaScript is executed.
Impact
This may allow an attacker to inject arbitrary JavaScript into rendered editor content.
Depending on how SUNEDITOR is integrated into an application, this could lead to:
- Stored XSS
- DOM manipulation
- Session theft
- Credential theft
- Account takeover actions performed in the victim’s browser context
Technical Details
The issue appears to be related to incomplete handling of namespaced/custom HTML elements such as:
<a:b>
Event-handler attributes such as onclick can remain attached to these crafted elements and execute when interacted with.
This suggests that the sanitization process may not consistently normalize and validate custom or namespaced elements before applying attribute filtering.
Suggested Remediation
Possible mitigations include:
- Normalize DOM elements before sanitization.
- Explicitly reject or unwrap unknown/custom/namespaced tags.
- Strip all event-handler attributes from all elements, including unknown/custom elements.
- Re-validate sanitized output after browser DOM parsing.
- Add regression tests for namespaced/custom tag payloads.
Czego dotyczy
Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.
| Platforma | Paczka | Podatne wersje | Poprawka w wersji |
|---|---|---|---|
| Paczka npm | suneditor | < 2.47.11 | 2.47.11 |
Odnośniki
- https://github.com/JiHong88/suneditor/security/advisories/GHSA-6rf4-v2fh-m6p4
- https://nvd.nist.gov/vuln/detail/CVE-2026-59167
- https://github.com/JiHong88/suneditor/issues/1646
- https://github.com/JiHong88/suneditor/commit/a94ace269c7102bfb6de58a27a6547bc4eb09045
- https://github.com/JiHong88/suneditor
- https://github.com/JiHong88/suneditor/releases/tag/2.47.11
- Wektor CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H- Słabość (CWE)
CWE-79- Platforma
- npm
- Paczka
suneditor- Ujawniono
- 24.09.2026
- Aktualizacja
- 11.10.2026 10:22
Źródła i licencje
OSV / GitHub Advisory Database - GHSA-6rf4-v2fh-m6p4 - CC BY 4.0
Historia podatności: suneditor
Wszystkie opisane podatności tej paczki (Paczka npm), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.
- Wszystkich wpisów
- 2
- Pierwsza → ostatnia
- 08.2026 09.2026
- Bez poprawki
- 0
- Wykorzystywana w atakach
- 0
Rozkład istotności
- Krytyczna 1
- Wysoka 1
Ujawnienia w latach
- 2026: 2
-
SunEditor: Critical XSS vulnerability - sanitizer bypass ten wpis
Dowiedz się, które podatności dotyczą Twojej aplikacji
Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.