# CVE-2025-15022: Cross-site scripting in Action caption

> Attackers can inject malicious scripts via unsanitized action captions in Vaadin, potentially executing code in user browsers.

- **Severity:** Medium 4.8 (`CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/S:N/AU:N/R:U/V:D/RE:L/U:Amber`)
- **Exploited in the wild:** Not known
- **Login needed:** Any signed-in user
- **Attackable:** Over the internet
- **Victim action needed:** A user has to click or open something
- **Fix available:** Yes
- **Published:** 5 Jan 2026
- **Updated:** 5 Jan 2026
- **Also known as:** GHSA-7wwv-79xw-rvvg

## What is CVE-2025-15022?

CVE-2025-15022 is a medium-severity cross-site scripting vulnerability in vaadin framework, published on 5 Jan 2026. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.

### Official description

Action captions in Vaadin accept HTML by default but were not sanitized, potentially allowing Cross-site Scripting (XSS) if caption content is derived from user input.

In Vaadin Framework 7 and 8, the Action class is a general-purpose class that may be used by multiple components. The fixed versions sanitize captions by default and provide an API to explicitly enable HTML content mode for backwards compatibility.

In Vaadin 23 and newer, the Action class is only used by the Spreadsheet component. The fixed versions sanitize HTML using Jsoup with a relaxed safelist.

Vaadin 14 is not affected as Spreadsheet component was not supported.

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

Product version
Vaadin 7.0.0 - 7.7.49
Vaadin 8.0.0 - 8.29.1
Vaadin 23.1.0 - 23.6.5
Vaadin 24.0.0 - 24.8.13
Vaadin 24.9.0 - 24.9.6

Mitigation
Upgrade to 7.7.50
Upgrade to 8.30.0
Upgrade to 23.6.6
Upgrade to 24.8.14 or 24.9.7
Upgrade to 25.0.0 or newer

Artifacts     Maven coordinatesVulnerable versionsFixed versioncom.vaadin:vaadin-server
7.0.0 - 7.7.49
≥7.7.50
com.vaadin:vaadin-server
8.0.0 - 8.29.1
≥8.30.0
com.vaadin:vaadin
23.1.0 - 23.6.5
≥23.6.6
com.vaadin:vaadin24.0.0 - 24.8.13
≥24.8.14
com.vaadin:vaadin24.9.0 - 24.9.6
≥24.9.7
com.vaadin:vaadin-spreadsheet-flow
23.1.0 - 23.6.5
≥23.6.6
com.vaadin:vaadin-spreadsheet-flow
24.0.0 - 24.8.13
≥24.8.14
com.vaadin:vaadin-spreadsheet-flow
24.9.0 - 24.9.6
≥24.9.7

Weakness: CWE-79 (Improper Neutralization of Input During Web Page Generation)

## Which versions are affected by CVE-2025-15022?

16 open source packages ship an affected version, including com.vaadin:vaadin, com.vaadin:vaadin-server and com.vaadin:vaadin-spreadsheet-flow.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `com.vaadin:vaadin` | Maven | From 23.1.0 | 23.6.6 |
| `com.vaadin:vaadin` | Maven | From 23.1.0 | 23.6.6 |
| `com.vaadin:vaadin` | Maven | From 24.0.0 | 24.8.14 |
| `com.vaadin:vaadin` | Maven | From 24.0.0 | 24.8.14 |
| `com.vaadin:vaadin` | Maven | From 24.9.0 | 24.9.7 |
| `com.vaadin:vaadin` | Maven | From 24.9.0 | 24.9.7 |
| `com.vaadin:vaadin-server` | Maven | From 7.0.0 | 7.7.50 |
| `com.vaadin:vaadin-server` | Maven | From 7.0.0 | 7.7.50 |
| `com.vaadin:vaadin-server` | Maven | From 8.0.0 | 8.30.0 |
| `com.vaadin:vaadin-server` | Maven | From 8.0.0 | 8.30.0 |
| `com.vaadin:vaadin-spreadsheet-flow` | Maven | From 23.1.0 | 23.6.6 |
| `com.vaadin:vaadin-spreadsheet-flow` | Maven | From 23.1.0 | 23.6.6 |
| `com.vaadin:vaadin-spreadsheet-flow` | Maven | From 24.0.0 | 24.8.14 |
| `com.vaadin:vaadin-spreadsheet-flow` | Maven | From 24.0.0 | 24.8.14 |
| `com.vaadin:vaadin-spreadsheet-flow` | Maven | From 24.9.0 | 24.9.7 |
| `com.vaadin:vaadin-spreadsheet-flow` | Maven | From 24.9.0 | 24.9.7 |

## How do I fix CVE-2025-15022?

Upgrade com.vaadin:vaadin to a fixed version for your release line: 23.6.6, 24.8.14 or 24.9.7.

## Is CVE-2025-15022 being exploited?

There is no known exploitation of CVE-2025-15022 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2025-15022 and fix it if it is affected.

What it is: CVE-2025-15022 is a medium-severity cross-site scripting vulnerability in vaadin framework, published on 5 Jan 2026. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.
Exploitation: There is no known exploitation of CVE-2025-15022 in the wild and no public exploit code.

Affected packages and fixed versions:
- com.vaadin:vaadin (Maven): affected from 23.1.0; fixed in 23.6.6
- com.vaadin:vaadin (Maven): affected from 23.1.0; fixed in 23.6.6
- com.vaadin:vaadin (Maven): affected from 24.0.0; fixed in 24.8.14
- com.vaadin:vaadin (Maven): affected from 24.0.0; fixed in 24.8.14
- com.vaadin:vaadin (Maven): affected from 24.9.0; fixed in 24.9.7
- com.vaadin:vaadin (Maven): affected from 24.9.0; fixed in 24.9.7
- com.vaadin:vaadin-server (Maven): affected from 7.0.0; fixed in 7.7.50
- com.vaadin:vaadin-server (Maven): affected from 7.0.0; fixed in 7.7.50
- com.vaadin:vaadin-server (Maven): affected from 8.0.0; fixed in 8.30.0
- com.vaadin:vaadin-server (Maven): affected from 8.0.0; fixed in 8.30.0
- com.vaadin:vaadin-spreadsheet-flow (Maven): affected from 23.1.0; fixed in 23.6.6
- com.vaadin:vaadin-spreadsheet-flow (Maven): affected from 23.1.0; fixed in 23.6.6

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2025-15022/ (Markdown: https://insights.sbomify.com/CVE-2025-15022/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2025-15022
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-15022
- OSV: https://osv.dev/vulnerability/CVE-2025-15022

---
From sbomify Insights: https://insights.sbomify.com/CVE-2025-15022/
Summaries are generated and may contain mistakes; the official description above is the record.
