Vulnerabilities in pkg:maven/com.vaadin/vaadin-server

PACKAGE
Advisory Identifier: GHSA-7wwv-79xw-rvvg
Advisory Summary

CVE-2025-15022 is a MODERATE cross-site scripting vulnerability (CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')) affecting Vaadin server libraries in the Maven ecosystem. The issue involves vaadin vulnerable to cross-site scripting. Remediation is available by upgrading affected packages to version 7.7.50, 8.30.0, 23.6.6, 24.8.14, 24.9.7.

7 Known Advisory Record(s)
Package Vulnerability Intelligence

pkg:maven/com.vaadin/vaadin-server

7 Known Advisory Record(s)

Vulnerability advisories affecting package pkg:maven/com.vaadin/vaadin-server. Select an advisory below to view technical details or fixes.

Advisory ID CVE / NVD Severity Summary
GHSA-7wwv-79xw-rvvg CVE-2025-15022 MODERATE Vaadin vulnerable to Cross-site Scripting
GHSA-9gfh-4fwj-w3rj CVE-2025-9467 MODERATE Vaadin Framework possible file bypass via upload validation on the server-side
GHSA-42j4-733x-5vcf CVE-2020-36320 HIGH Regular expression denial of service (ReDoS) in EmailValidator class in Vaadin 7
GHSA-qcgx-crrx-38v5 CVE-2021-33609 MODERATE Denial of service in DataCommunicator class in Vaadin 8
GHSA-j23j-q57m-63v3 - MODERATE Denial of service in DataCommunicator class in Vaadin 8
GHSA-q74r-4xw3-ppx9 CVE-2019-25028 MODERATE Stored cross-site scripting in Grid component in Vaadin 7 and 8
GHSA-75xc-qvxh-27f8 CVE-2021-31403 MODERATE Timing side channel vulnerability in UIDL request handler in Vaadin 7 and 8

CVE-2025-15022 at a Glance

CVE Identifier CVE-2025-15022
GHSA Identifier GHSA-7wwv-79xw-rvvg
Severity MODERATE
CVSS v3.1 Base Score N/A
CWE Classification CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Affected Product Vaadin server
Package Ecosystem Maven
Published Date
Last Updated

How to Fix CVE-2025-15022

To remediate this vulnerability, upgrade all affected Vaadin server dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

com.vaadin:vaadin-server fixed: 7.7.50
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-server</artifactId>
    <version>7.7.50</version>
</dependency>
com.vaadin:vaadin-server fixed: 8.30.0
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-server</artifactId>
    <version>8.30.0</version>
</dependency>
com.vaadin:vaadin fixed: 23.6.6
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin</artifactId>
    <version>23.6.6</version>
</dependency>
com.vaadin:vaadin fixed: 24.8.14
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin</artifactId>
    <version>24.8.14</version>
</dependency>
com.vaadin:vaadin fixed: 24.9.7
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin</artifactId>
    <version>24.9.7</version>
</dependency>
com.vaadin:vaadin-spreadsheet-flow fixed: 23.6.6
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-spreadsheet-flow</artifactId>
    <version>23.6.6</version>
</dependency>
com.vaadin:vaadin-spreadsheet-flow fixed: 24.8.14
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-spreadsheet-flow</artifactId>
    <version>24.8.14</version>
</dependency>
com.vaadin:vaadin-spreadsheet-flow fixed: 24.9.7
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-spreadsheet-flow</artifactId>
    <version>24.9.7</version>
</dependency>
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

mvn dependency:tree -Dincludes=com.vaadin

How to Check if You Are Affected

To determine whether your Java application is affected by CVE-2025-15022, inspect your build dependencies using the Maven Dependency Plugin:

mvn dependency:tree -Dincludes=com.vaadin

Analyze the terminal output to locate any version of Vaadin server in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 7.7.50), your application is affected.

Note: The mvn dependency:tree -Dincludes=com.vaadin command inspects the resolved dependency graph declared in your project's POM files; it does not perform automated security scanning or inspect runtime dynamic classpaths. Always verify runtime container classpaths and shaded JARs.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'), where 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. In Vaadin server, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

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

CVE-2025-15022 Affected Vaadin server Versions

8 component(s)
Fixed Versions:
7.7.508.30.023.6.624.8.1424.9.7
Product / Package Ecosystem Affected Versions Fixed Version
com.vaadin:vaadin-server
Maven
≥ 7.0.0
< 7.7.50
7.7.50
com.vaadin:vaadin-server
Maven
≥ 8.0.0
< 8.30.0
8.30.0
com.vaadin:vaadin
Maven
≥ 23.1.0
< 23.6.6
23.6.6
com.vaadin:vaadin
Maven
≥ 24.0.0
< 24.8.14
24.8.14
com.vaadin:vaadin
Maven
≥ 24.9.0
< 24.9.7
24.9.7
com.vaadin:vaadin-spreadsheet-flow
Maven
≥ 23.1.0
< 23.6.6
23.6.6
com.vaadin:vaadin-spreadsheet-flow
Maven
≥ 24.0.0
< 24.8.14
24.8.14
com.vaadin:vaadin-spreadsheet-flow
Maven
≥ 24.9.0
< 24.9.7
24.9.7

References

Frequently Asked Questions

What is CVE-2025-15022?
CVE-2025-15022 is a security vulnerability in Vaadin server involving Vaadin vulnerable to Cross-site Scripting under CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting').
Which Vaadin server versions are affected?
Affected versions include releases prior to 7.7.50, 8.30.0, 23.6.6, 24.8.14, 24.9.7 across affected packages: com.vaadin:vaadin-server, com.vaadin:vaadin, com.vaadin:vaadin-spreadsheet-flow.
What version fixes CVE-2025-15022?
Upgrading to 7.7.50, 8.30.0, 23.6.6, 24.8.14, 24.9.7 (or the latest patched release for your respective branch) resolves the vulnerability.
Is vaadin-server affected?
Yes, com.vaadin:vaadin-server is affected in releases prior to 7.7.50, 8.30.0. Upgrade your dependency to 7.7.50, 8.30.0 or later.
Is vaadin affected?
Yes, com.vaadin:vaadin is affected in releases prior to 23.6.6, 24.8.14, 24.9.7. Upgrade your dependency to 23.6.6, 24.8.14, 24.9.7 or later.
What CWE is associated with CVE-2025-15022?
CVE-2025-15022 is classified under CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') (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.).
How can I check Maven dependencies for CVE-2025-15022?
Run the dependency tree command: 'mvn dependency:tree -Dincludes=com.vaadin'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-7wwv-79xw-rvvg",
  "modified" : "2026-01-05T19:48:50Z",
  "published" : "2026-01-05T09:30:19Z",
  "aliases" : [ "CVE-2025-15022" ],
  "summary" : "Vaadin vulnerable to Cross-site Scripting",
  "details" : "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.\n\nIn 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.\n\nIn 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.\n\nVaadin 14 is not affected as Spreadsheet component was not supported.\n\nUsers of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include:\n\nProduct version\nVaadin 7.0.0 - 7.7.49\nVaadin 8.0.0 - 8.29.1\nVaadin 23.1.0 - 23.6.5\nVaadin 24.0.0 - 24.8.13\nVaadin 24.9.0 - 24.9.6\n\nMitigation\nUpgrade to 7.7.50\nUpgrade to 8.30.0\nUpgrade to 23.6.6\nUpgrade to 24.8.14 or 24.9.7\nUpgrade to 25.0.0 or newer\n\nArtifacts     Maven coordinatesVulnerable versionsFixed versioncom.vaadin:vaadin-server\n7.0.0 - 7.7.49\n≥7.7.50\ncom.vaadin:vaadin-server\n8.0.0 - 8.29.1\n≥8.30.0\ncom.vaadin:vaadin\n23.1.0 - 23.6.5\n≥23.6.6\ncom.vaadin:vaadin24.0.0 - 24.8.13\n≥24.8.14\ncom.vaadin:vaadin24.9.0 - 24.9.6\n≥24.9.7\ncom.vaadin:vaadin-spreadsheet-flow\n23.1.0 - 23.6.5\n≥23.6.6\ncom.vaadin:vaadin-spreadsheet-flow\n24.0.0 - 24.8.13\n≥24.8.14\ncom.vaadin:vaadin-spreadsheet-flow\n24.9.0 - 24.9.6\n≥24.9.7",
  "severity" : [ {
    "type" : "CVSS_V4",
    "score" : "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"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "com.vaadin:vaadin-server"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "7.0.0"
      }, {
        "fixed" : "7.7.50"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "com.vaadin:vaadin-server"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "8.0.0"
      }, {
        "fixed" : "8.30.0"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "com.vaadin:vaadin"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "23.1.0"
      }, {
        "fixed" : "23.6.6"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "com.vaadin:vaadin"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "24.0.0"
      }, {
        "fixed" : "24.8.14"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "com.vaadin:vaadin"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "24.9.0"
      }, {
        "fixed" : "24.9.7"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "com.vaadin:vaadin-spreadsheet-flow"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "23.1.0"
      }, {
        "fixed" : "23.6.6"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "com.vaadin:vaadin-spreadsheet-flow"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "24.0.0"
      }, {
        "fixed" : "24.8.14"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Maven",
      "name" : "com.vaadin:vaadin-spreadsheet-flow"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "24.9.0"
      }, {
        "fixed" : "24.9.7"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2025-15022"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/vaadin/flow-components/pull/8285"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/vaadin/flow-components/commit/71046aa3dd08be0907bd03140c33131b94f6e99c"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/vaadin/flow-components"
  }, {
    "type" : "WEB",
    "url" : "https://vaadin.com/security/cve-2025-15022"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-79" ],
    "severity" : "MODERATE",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-01-05T19:48:50Z",
    "nvd_published_at" : "2026-01-05T08:15:56Z"
  }
}