CVE-2026-120350
Awaiting Analysis
Awaiting Analysis - Queue
Stored XSS in Vaadin Rich Text Editor
Vulnerability report for CVE-2026-120350, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.
Publication date: 2026-11-10
Last updated on: 2026-11-10
Assigner: Vaadin Ltd.
Description
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
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| vaadin | vaadin | From 25.0.0 (inc) to 25.0.13 (inc) |
| vaadin | vaadin | From 25.1.0 (inc) to 25.1.13 (inc) |
| vaadin | vaadin | From 25.2.0 (inc) to 25.2.13 (exc) |
| vaadin | vaadin | From 25.3.0 (inc) to 25.3.5 (exc) |
| vaadin | vaadin-core | From 25.0.0 (inc) to 25.0.13 (inc) |
| vaadin | vaadin-core | From 25.1.0 (inc) to 25.1.13 (inc) |
| vaadin | vaadin-core | From 25.2.0 (inc) to 25.2.13 (exc) |
| vaadin | vaadin-core | From 25.3.0 (inc) to 25.3.5 (exc) |
| vaadin | vaadin-rich-text-editor-flow | From 25.0.0 (inc) to 25.0.13 (inc) |
| vaadin | vaadin-rich-text-editor-flow | From 25.1.0 (inc) to 25.1.13 (inc) |
| vaadin | vaadin-rich-text-editor-flow | From 25.2.0 (inc) to 25.2.13 (exc) |
| vaadin | vaadin-rich-text-editor-flow | From 25.3.0 (inc) to 25.3.5 (exc) |
| vaadin | rich-text-editor | From 25.0.0 (inc) to 25.0.13 (inc) |
| vaadin | rich-text-editor | From 25.1.0 (inc) to 25.1.14 (inc) |
| vaadin | rich-text-editor | From 25.2.0 (inc) to 25.2.17 (exc) |
| vaadin | rich-text-editor | From 25.3.0 (inc) to 25.3.5 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-79 | The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. |