The Vaadin Rich Text Editor exports a video embed without escaping its value, and then parses the resulting HTML into live DOM. A value crafted to break out of the href attribute therefore runs script in the viewer's browser. An attacker who can edit shared content pastes a video embed carrying the payload, the delta is stored, and the script runs when any user opens the page, including in read only mode.

Only content persisted through asDelta() is affected. The default HTML value, set and read through setValue and getValue, is sanitized on the server with a safelist that has no iframe, so the embed does not survive that path. Vaadin 24 and older are not affected: they build the HTML value from the editor's own innerHTML, which the browser escapes.

Users of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include:

Product version
Vaadin 25.0.0 - 25.0.13
Vaadin 25.1.0 - 25.1.13
Vaadin 25.2.0 - 25.2.12
Vaadin 25.3.0 - 25.3.4

Mitigation
No fixed release on this line, upgrade to 25.2.13 or newer
No fixed release on this line, upgrade to 25.2.13 or newer
Upgrade to 25.2.13
Upgrade to 25.3.5
Advisories

No advisories yet.

Fixes

Solution

Users of affected versions should apply the following mitigation or upgrade.


Workaround

Persist the editor content through the default HTML value, set and read with setValue and getValue, which is sanitized on the server, rather than through asDelta(). An application that must use asDelta() should strip video inserts from the delta before storing or replaying it.

History

Tue, 10 Nov 2026 12:00:00 +0000

Type Values Removed Values Added
Description The Vaadin Rich Text Editor exports a video embed without escaping its value, and then parses the resulting HTML into live DOM. A value crafted to break out of the href attribute therefore runs script in the viewer's browser. An attacker who can edit shared content pastes a video embed carrying the payload, the delta is stored, and the script runs when any user opens the page, including in read only mode. Only content persisted through asDelta() is affected. The default HTML value, set and read through setValue and getValue, is sanitized on the server with a safelist that has no iframe, so the embed does not survive that path. Vaadin 24 and older are not affected: they build the HTML value from the editor's own innerHTML, which the browser escapes. Users of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include: Product version Vaadin 25.0.0 - 25.0.13 Vaadin 25.1.0 - 25.1.13 Vaadin 25.2.0 - 25.2.12 Vaadin 25.3.0 - 25.3.4 Mitigation No fixed release on this line, upgrade to 25.2.13 or newer No fixed release on this line, upgrade to 25.2.13 or newer Upgrade to 25.2.13 Upgrade to 25.3.5
Title Stored Cross-Site Scripting in the Vaadin Rich Text Editor via an Unescaped Video Embed
Weaknesses CWE-79
References
Metrics cvssV4_0

{'score': 5.1, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N'}


Projects

Sign in to view the affected projects.

cve-icon MITRE

Status: PUBLISHED

Assigner: Vaadin

Published:

Updated: 2026-11-10T11:50:08.635Z

Reserved: 2026-11-01T19:47:45.740Z

Link: CVE-2026-120350

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-11-10T12:17:17.050

Modified: 2026-11-10T12:17:17.170

Link: CVE-2026-120350

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

No data.

Weaknesses