CVE-2026-107588 (GCVE-0-2026-107588)
Vulnerability from cvelistv5 – Published: 2026-10-21 18:22 – Updated: 2026-10-30 17:16| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| vaadin | vaadin |
Affected:
22.0.0 , < 23.6.16
(maven)
Affected: 24.0.0 , < 24.4.24 (maven) Affected: 24.5.0 , < 24.7.16 (maven) Affected: 24.8.0 , < 24.9.23 (maven) Affected: 24.10.0 , < 24.10.11 (maven) Affected: 25.0.0 , ≤ 25.0.13 (maven) Affected: 25.1.0 , ≤ 25.1.13 (maven) Affected: 25.2.0 , < 25.2.10 (maven) Affected: 25.3.0 , < 25.3.1 (maven) |
guessed | |
| vaadin | vaadin-charts-flow |
Affected:
22.0.0 , < 23.6.16
(maven)
Affected: 24.0.0 , < 24.4.24 (maven) Affected: 24.5.0 , < 24.7.15 (maven) Affected: 24.8.0 , < 24.9.23 (maven) Affected: 24.10.0 , < 24.10.11 (maven) Affected: 25.0.0 , ≤ 25.0.13 (maven) Affected: 25.1.0 , ≤ 25.1.13 (maven) Affected: 25.2.0 , < 25.2.10 (maven) Affected: 25.3.0 , < 25.3.1 (maven) |
guessed | |
| vaadin | vaadin-charts-flow-svg-generator |
Affected:
21.0.0 , < 23.6.16
(maven)
Affected: 24.0.0 , < 24.4.24 (maven) Affected: 24.5.0 , < 24.7.15 (maven) Affected: 24.8.0 , < 24.9.23 (maven) Affected: 24.10.0 , < 24.10.11 (maven) Affected: 25.0.0 , ≤ 25.0.13 (maven) Affected: 25.1.0 , ≤ 25.1.13 (maven) Affected: 25.2.0 , < 25.2.10 (maven) Affected: 25.3.0 , < 25.3.1 (maven) |
guessed | |
| vaadin | @vaadin/charts |
Affected:
22.0.0 , < 23.6.7
(semver)
Affected: 24.0.0 , < 24.4.19 (semver) Affected: 24.5.0 , < 24.7.13 (semver) Affected: 24.8.0 , < 24.9.19 (semver) Affected: 24.10.0 , < 24.10.7 (semver) Affected: 25.0.0 , ≤ 25.0.13 (semver) Affected: 25.1.0 , ≤ 25.1.14 (semver) Affected: 25.2.0 , < 25.2.14 (semver) Affected: 25.3.0 , < 25.3.1 (semver) |
guessed |
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-107588",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-30T17:14:06.374418Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T17:16:23.814Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"collectionURL": "https://repo.maven.apache.org/maven2",
"defaultStatus": "unaffected",
"packageName": "com.vaadin:vaadin",
"product": "vaadin",
"repo": "https://github.com/vaadin/platform",
"vendor": "vaadin",
"versions": [
{
"lessThan": "23.6.16",
"status": "affected",
"version": "22.0.0",
"versionType": "maven"
},
{
"lessThan": "24.4.24",
"status": "affected",
"version": "24.0.0",
"versionType": "maven"
},
{
"lessThan": "24.7.16",
"status": "affected",
"version": "24.5.0",
"versionType": "maven"
},
{
"lessThan": "24.9.23",
"status": "affected",
"version": "24.8.0",
"versionType": "maven"
},
{
"lessThan": "24.10.11",
"status": "affected",
"version": "24.10.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.0.13",
"status": "affected",
"version": "25.0.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.1.13",
"status": "affected",
"version": "25.1.0",
"versionType": "maven"
},
{
"lessThan": "25.2.10",
"status": "affected",
"version": "25.2.0",
"versionType": "maven"
},
{
"lessThan": "25.3.1",
"status": "affected",
"version": "25.3.0",
"versionType": "maven"
}
]
},
{
"collectionURL": "https://repo.maven.apache.org/maven2",
"defaultStatus": "unaffected",
"packageName": "com.vaadin:vaadin-charts-flow",
"product": "vaadin-charts-flow",
"repo": "https://github.com/vaadin/flow-components",
"vendor": "vaadin",
"versions": [
{
"lessThan": "23.6.16",
"status": "affected",
"version": "22.0.0",
"versionType": "maven"
},
{
"lessThan": "24.4.24",
"status": "affected",
"version": "24.0.0",
"versionType": "maven"
},
{
"lessThan": "24.7.15",
"status": "affected",
"version": "24.5.0",
"versionType": "maven"
},
{
"lessThan": "24.9.23",
"status": "affected",
"version": "24.8.0",
"versionType": "maven"
},
{
"lessThan": "24.10.11",
"status": "affected",
"version": "24.10.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.0.13",
"status": "affected",
"version": "25.0.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.1.13",
"status": "affected",
"version": "25.1.0",
"versionType": "maven"
},
{
"lessThan": "25.2.10",
"status": "affected",
"version": "25.2.0",
"versionType": "maven"
},
{
"lessThan": "25.3.1",
"status": "affected",
"version": "25.3.0",
"versionType": "maven"
}
]
},
{
"collectionURL": "https://repo.maven.apache.org/maven2",
"defaultStatus": "unaffected",
"packageName": "com.vaadin:vaadin-charts-flow-svg-generator",
"product": "vaadin-charts-flow-svg-generator",
"repo": "https://github.com/vaadin/flow-components",
"vendor": "vaadin",
"versions": [
{
"lessThan": "23.6.16",
"status": "affected",
"version": "21.0.0",
"versionType": "maven"
},
{
"lessThan": "24.4.24",
"status": "affected",
"version": "24.0.0",
"versionType": "maven"
},
{
"lessThan": "24.7.15",
"status": "affected",
"version": "24.5.0",
"versionType": "maven"
},
{
"lessThan": "24.9.23",
"status": "affected",
"version": "24.8.0",
"versionType": "maven"
},
{
"lessThan": "24.10.11",
"status": "affected",
"version": "24.10.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.0.13",
"status": "affected",
"version": "25.0.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.1.13",
"status": "affected",
"version": "25.1.0",
"versionType": "maven"
},
{
"lessThan": "25.2.10",
"status": "affected",
"version": "25.2.0",
"versionType": "maven"
},
{
"lessThan": "25.3.1",
"status": "affected",
"version": "25.3.0",
"versionType": "maven"
}
]
},
{
"collectionURL": "https://registry.npmjs.org",
"defaultStatus": "unaffected",
"packageName": "@vaadin/charts",
"product": "@vaadin/charts",
"repo": "https://github.com/vaadin/web-components",
"vendor": "vaadin",
"versions": [
{
"lessThan": "23.6.7",
"status": "affected",
"version": "22.0.0",
"versionType": "semver"
},
{
"lessThan": "24.4.19",
"status": "affected",
"version": "24.0.0",
"versionType": "semver"
},
{
"lessThan": "24.7.13",
"status": "affected",
"version": "24.5.0",
"versionType": "semver"
},
{
"lessThan": "24.9.19",
"status": "affected",
"version": "24.8.0",
"versionType": "semver"
},
{
"lessThan": "24.10.7",
"status": "affected",
"version": "24.10.0",
"versionType": "semver"
},
{
"lessThanOrEqual": "25.0.13",
"status": "affected",
"version": "25.0.0",
"versionType": "semver"
},
{
"lessThanOrEqual": "25.1.14",
"status": "affected",
"version": "25.1.0",
"versionType": "semver"
},
{
"lessThan": "25.2.14",
"status": "affected",
"version": "25.2.0",
"versionType": "semver"
},
{
"lessThan": "25.3.1",
"status": "affected",
"version": "25.3.0",
"versionType": "semver"
}
]
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cspan style=\"background-color: rgba(232, 232, 232, 0.04);\"\u003eVaadin Charts renders charts with the Highcharts library and pins an exact version of it, 9.2.2 in Vaadin 22 to 24 and 12.2.0 in Vaadin 25, so an application cannot remove these vulnerabilities by upgrading Highcharts on its own. Highsoft disclosed several vulnerabilities in that library that are reachable through the chart configuration: writes to Object.prototype through dotted series.keys paths, and cross-site scripting through credits.href, through breadcrumbs.style, through HTML text parsing while printing, and through xlink:href attributes in exported charts. An application is affected where data an attacker controls reaches the chart configuration, for example through additionalOptions, through updateConfiguration(), or through text options that accept markup. The fixed Vaadin versions apply Highsoft\u0027s recommended workarounds to the bundled Highcharts when it loads, and keep the same Highcharts version.\u003cbr\u003e\u003cbr\u003e\u003cbr\u003eUsers of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include:\u003cbr\u003e\u003cbr\u003eProduct version\u003cbr\u003eVaadin 22.0.0 - 23.6.15\u003cbr\u003eVaadin 24.0.0 - 24.4.23\u003cbr\u003eVaadin 24.5.0 - 24.7.15\u003cbr\u003eVaadin 24.8.0 - 24.9.22\u003cbr\u003eVaadin 24.10.0 - 24.10.10\u003cbr\u003eVaadin 25.0.0 - 25.2.9\u003cbr\u003eVaadin 25.3.0\u003cbr\u003e\u003cbr\u003eMitigation\u003cbr\u003eUpgrade to 23.6.16\u003cbr\u003eUpgrade to 24.4.24\u003cbr\u003eUpgrade to 24.7.16\u003cbr\u003eUpgrade to 24.9.23\u003cbr\u003eUpgrade to 24.10.11\u003cbr\u003eUpgrade to 25.2.10\u003cbr\u003eUpgrade to 25.3.1 or newer\u003cbr\u003e\u003cbr\u003ePlease note that Vaadin versions 10-13 and 15-22 are no longer supported and you should update either to the latest 23, 24, 25 version.\u003cbr\u003e\u003cbr\u003eArtifacts\u003ctable\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003eMaven coordinates\u003c/td\u003e\u003ctd\u003eVulnerable versions\u003c/td\u003e\u003ctd\u003eFixed version\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e22.0.0 - 23.6.15\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;23.6.16\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.0.0 - 24.4.23\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.4.24\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.5.0 - 24.7.15\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.7.16\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.8.0 - 24.9.22\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.9.23\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.10.0 - 24.10.10\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.10.11\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.0.0 - 25.0.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.1.0 - 25.1.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.2.0 - 25.2.9\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.3.0\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.3.1\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e22.0.0 - 23.6.15\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;23.6.16\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.0.0 - 24.4.22\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.4.24\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.5.0 - 24.7.14\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.7.15\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.8.0 - 24.9.22\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.9.23\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.10.0 - 24.10.10\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.10.11\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.0.0 - 25.0.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.1.0 - 25.1.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.2.0 - 25.2.9\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.3.0\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.3.1\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e21.0.0 - 23.6.15\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;23.6.16\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.0.0 - 24.4.22\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.4.24\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.5.0 - 24.7.14\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.7.15\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.8.0 - 24.9.22\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.9.23\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.10.0 - 24.10.10\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.10.11\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.0.0 - 25.0.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.1.0 - 25.1.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.2.0 - 25.2.9\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.3.0\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.3.1\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\u003cbr\u003e\u003cbr\u003enpm packages\u003ctable\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003enpm package\u003c/td\u003e\u003ctd\u003eVulnerable versions\u003c/td\u003e\u003ctd\u003eFixed version\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e22.0.0 - 23.6.6\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;23.6.7\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.0.0 - 24.4.18\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.4.19\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.5.0 - 24.7.12\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.7.13\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.8.0 - 24.9.18\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.9.19\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.10.0 - 24.10.6\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.10.7\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.0.0 - 25.0.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.14\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.1.0 - 25.1.14\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.14\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.2.0 - 25.2.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.14\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.3.0\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.3.1\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\u003c/span\u003e"
}
],
"value": "Vaadin Charts renders charts with the Highcharts library and pins an exact version of it, 9.2.2 in Vaadin 22 to 24 and 12.2.0 in Vaadin 25, so an application cannot remove these vulnerabilities by upgrading Highcharts on its own. Highsoft disclosed several vulnerabilities in that library that are reachable through the chart configuration: writes to Object.prototype through dotted series.keys paths, and cross-site scripting through credits.href, through breadcrumbs.style, through HTML text parsing while printing, and through xlink:href attributes in exported charts. An application is affected where data an attacker controls reaches the chart configuration, for example through additionalOptions, through updateConfiguration(), or through text options that accept markup. The fixed Vaadin versions apply Highsoft\u0027s recommended workarounds to the bundled Highcharts when it loads, and keep the same Highcharts version.\n\n\nUsers of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include:\n\nProduct version\nVaadin 22.0.0 - 23.6.15\nVaadin 24.0.0 - 24.4.23\nVaadin 24.5.0 - 24.7.15\nVaadin 24.8.0 - 24.9.22\nVaadin 24.10.0 - 24.10.10\nVaadin 25.0.0 - 25.2.9\nVaadin 25.3.0\n\nMitigation\nUpgrade to 23.6.16\nUpgrade to 24.4.24\nUpgrade to 24.7.16\nUpgrade to 24.9.23\nUpgrade to 24.10.11\nUpgrade to 25.2.10\nUpgrade to 25.3.1 or newer\n\nPlease note that Vaadin versions 10-13 and 15-22 are no longer supported and you should update either to the latest 23, 24, 25 version.\n\nArtifacts\nMaven coordinates / Vulnerable versions / Fixed version\ncom.vaadin:vaadin / 22.0.0 - 23.6.15 / \u003e=23.6.16\ncom.vaadin:vaadin / 24.0.0 - 24.4.23 / \u003e=24.4.24\ncom.vaadin:vaadin / 24.5.0 - 24.7.15 / \u003e=24.7.16\ncom.vaadin:vaadin / 24.8.0 - 24.9.22 / \u003e=24.9.23\ncom.vaadin:vaadin / 24.10.0 - 24.10.10 / \u003e=24.10.11\ncom.vaadin:vaadin / 25.0.0 - 25.0.13 / \u003e=25.2.10\ncom.vaadin:vaadin / 25.1.0 - 25.1.13 / \u003e=25.2.10\ncom.vaadin:vaadin / 25.2.0 - 25.2.9 / \u003e=25.2.10\ncom.vaadin:vaadin / 25.3.0 / \u003e=25.3.1\ncom.vaadin:vaadin-charts-flow / 22.0.0 - 23.6.15 / \u003e=23.6.16\ncom.vaadin:vaadin-charts-flow / 24.0.0 - 24.4.22 / \u003e=24.4.24\ncom.vaadin:vaadin-charts-flow / 24.5.0 - 24.7.14 / \u003e=24.7.15\ncom.vaadin:vaadin-charts-flow / 24.8.0 - 24.9.22 / \u003e=24.9.23\ncom.vaadin:vaadin-charts-flow / 24.10.0 - 24.10.10 / \u003e=24.10.11\ncom.vaadin:vaadin-charts-flow / 25.0.0 - 25.0.13 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow / 25.1.0 - 25.1.13 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow / 25.2.0 - 25.2.9 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow / 25.3.0 / \u003e=25.3.1\ncom.vaadin:vaadin-charts-flow-svg-generator / 21.0.0 - 23.6.15 / \u003e=23.6.16\ncom.vaadin:vaadin-charts-flow-svg-generator / 24.0.0 - 24.4.22 / \u003e=24.4.24\ncom.vaadin:vaadin-charts-flow-svg-generator / 24.5.0 - 24.7.14 / \u003e=24.7.15\ncom.vaadin:vaadin-charts-flow-svg-generator / 24.8.0 - 24.9.22 / \u003e=24.9.23\ncom.vaadin:vaadin-charts-flow-svg-generator / 24.10.0 - 24.10.10 / \u003e=24.10.11\ncom.vaadin:vaadin-charts-flow-svg-generator / 25.0.0 - 25.0.13 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow-svg-generator / 25.1.0 - 25.1.13 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow-svg-generator / 25.2.0 - 25.2.9 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow-svg-generator / 25.3.0 / \u003e=25.3.1\n\nnpm packages\nnpm package / Vulnerable versions / Fixed version\n@vaadin/charts / 22.0.0 - 23.6.6 / \u003e=23.6.7\n@vaadin/charts / 24.0.0 - 24.4.18 / \u003e=24.4.19\n@vaadin/charts / 24.5.0 - 24.7.12 / \u003e=24.7.13\n@vaadin/charts / 24.8.0 - 24.9.18 / \u003e=24.9.19\n@vaadin/charts / 24.10.0 - 24.10.6 / \u003e=24.10.7\n@vaadin/charts / 25.0.0 - 25.0.13 / \u003e=25.2.14\n@vaadin/charts / 25.1.0 - 25.1.14 / \u003e=25.2.14\n@vaadin/charts / 25.2.0 - 25.2.13 / \u003e=25.2.14\n@vaadin/charts / 25.3.0 / \u003e=25.3.1"
}
],
"impacts": [
{
"capecId": "CAPEC-63",
"descriptions": [
{
"lang": "en",
"value": "CAPEC-63 Cross-Site Scripting (XSS)"
}
]
},
{
"capecId": "CAPEC-77",
"descriptions": [
{
"lang": "en",
"value": "CAPEC-77 Manipulating User-Controlled Variables"
}
]
}
],
"metrics": [
{
"cvssV4_0": {
"Automatable": "NO",
"Recovery": "AUTOMATIC",
"Safety": "NEGLIGIBLE",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"baseScore": 8.4,
"baseSeverity": "HIGH",
"privilegesRequired": "LOW",
"providerUrgency": "CLEAR",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "LOW",
"subIntegrityImpact": "LOW",
"userInteraction": "ACTIVE",
"valueDensity": "DIFFUSE",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH",
"vulnerabilityResponseEffort": "LOW"
},
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-79",
"description": "CWE-79 Improper Neutralization of Input During Web Page Generation (\u0027Cross-site Scripting\u0027)",
"lang": "en",
"type": "CWE"
},
{
"cweId": "CWE-1321",
"description": "CWE-1321 Improperly Controlled Modification of Object Prototype Attributes (\u0027Prototype Pollution\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T18:22:47.593Z",
"orgId": "9e0f3122-90e9-42d5-93de-8c6b98deef7e",
"shortName": "Vaadin"
},
"references": [
{
"url": "https://vaadin.com/security/cve-2026-107588"
},
{
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-rmqc-xvr3-v46c"
},
{
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-5793-x2q3-c3q7"
},
{
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-35rr-xwfh-x789"
},
{
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-65hg-cf3f-5m39"
},
{
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-mw4f-gj5x-6xr4"
},
{
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-gfvx-2c2g-38wq"
},
{
"url": "https://github.com/vaadin/web-components/pull/12886"
},
{
"url": "https://github.com/vaadin/web-components/pull/12887"
},
{
"url": "https://github.com/vaadin/web-components/pull/12897"
},
{
"url": "https://github.com/vaadin/web-components/pull/12898"
},
{
"url": "https://github.com/vaadin/web-components/pull/12899"
},
{
"url": "https://github.com/vaadin/web-components/pull/12900"
},
{
"url": "https://github.com/vaadin/web-components/pull/12901"
},
{
"url": "https://github.com/vaadin/web-components/pull/12918"
},
{
"url": "https://github.com/vaadin/web-components/pull/12919"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10283"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10284"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10285"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10290"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10291"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10292"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10293"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10299"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10300"
}
],
"solutions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cb\u003e\u003cspan style=\"background-color: transparent;\"\u003eUsers of affected versions should apply the following mitigation or upgrade.\u003c/span\u003e\u003c/b\u003e\u003cbr\u003e"
}
],
"value": "Users of affected versions should apply the following mitigation or upgrade."
}
],
"source": {
"discovery": "EXTERNAL"
},
"title": "Multiple Vulnerabilities in the Highcharts Library Bundled with Vaadin Charts",
"workarounds": [
{
"lang": "en",
"value": "Do not pass data the application does not control to the chart configuration. That covers the additionalOptions property of \u003cvaadin-chart\u003e and \u003cvaadin-chart-series\u003e, updateConfiguration() and the configuration property, setKeys() and addKey() on the PlotOptions classes, Credits.setUnsafeHref(), and the text options that accept markup such as Title.setText(), Subtitle.setText(), axis labels, data labels and tooltip formats. Charts whose configuration the application builds itself are not affected."
}
],
"x_generator": {
"engine": "Vulnogram 0.5.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "9e0f3122-90e9-42d5-93de-8c6b98deef7e",
"assignerShortName": "Vaadin",
"cveId": "CVE-2026-107588",
"datePublished": "2026-10-21T18:22:47.593Z",
"dateReserved": "2026-10-08T11:32:35.498Z",
"dateUpdated": "2026-10-30T17:16:23.814Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-107588",
"date": "2026-11-12",
"epss": "0.00524",
"percentile": "0.44962"
},
"nvd": {
"cve": {
"affected": [
{
"affectedData": [
{
"collectionURL": "https://repo.maven.apache.org/maven2",
"defaultStatus": "unaffected",
"packageName": "com.vaadin:vaadin",
"product": "vaadin",
"repo": "https://github.com/vaadin/platform",
"vendor": "vaadin",
"versions": [
{
"lessThan": "23.6.16",
"status": "affected",
"version": "22.0.0",
"versionType": "maven"
},
{
"lessThan": "24.4.24",
"status": "affected",
"version": "24.0.0",
"versionType": "maven"
},
{
"lessThan": "24.7.16",
"status": "affected",
"version": "24.5.0",
"versionType": "maven"
},
{
"lessThan": "24.9.23",
"status": "affected",
"version": "24.8.0",
"versionType": "maven"
},
{
"lessThan": "24.10.11",
"status": "affected",
"version": "24.10.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.0.13",
"status": "affected",
"version": "25.0.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.1.13",
"status": "affected",
"version": "25.1.0",
"versionType": "maven"
},
{
"lessThan": "25.2.10",
"status": "affected",
"version": "25.2.0",
"versionType": "maven"
},
{
"lessThan": "25.3.1",
"status": "affected",
"version": "25.3.0",
"versionType": "maven"
}
]
},
{
"collectionURL": "https://repo.maven.apache.org/maven2",
"defaultStatus": "unaffected",
"packageName": "com.vaadin:vaadin-charts-flow",
"product": "vaadin-charts-flow",
"repo": "https://github.com/vaadin/flow-components",
"vendor": "vaadin",
"versions": [
{
"lessThan": "23.6.16",
"status": "affected",
"version": "22.0.0",
"versionType": "maven"
},
{
"lessThan": "24.4.24",
"status": "affected",
"version": "24.0.0",
"versionType": "maven"
},
{
"lessThan": "24.7.15",
"status": "affected",
"version": "24.5.0",
"versionType": "maven"
},
{
"lessThan": "24.9.23",
"status": "affected",
"version": "24.8.0",
"versionType": "maven"
},
{
"lessThan": "24.10.11",
"status": "affected",
"version": "24.10.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.0.13",
"status": "affected",
"version": "25.0.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.1.13",
"status": "affected",
"version": "25.1.0",
"versionType": "maven"
},
{
"lessThan": "25.2.10",
"status": "affected",
"version": "25.2.0",
"versionType": "maven"
},
{
"lessThan": "25.3.1",
"status": "affected",
"version": "25.3.0",
"versionType": "maven"
}
]
},
{
"collectionURL": "https://repo.maven.apache.org/maven2",
"defaultStatus": "unaffected",
"packageName": "com.vaadin:vaadin-charts-flow-svg-generator",
"product": "vaadin-charts-flow-svg-generator",
"repo": "https://github.com/vaadin/flow-components",
"vendor": "vaadin",
"versions": [
{
"lessThan": "23.6.16",
"status": "affected",
"version": "21.0.0",
"versionType": "maven"
},
{
"lessThan": "24.4.24",
"status": "affected",
"version": "24.0.0",
"versionType": "maven"
},
{
"lessThan": "24.7.15",
"status": "affected",
"version": "24.5.0",
"versionType": "maven"
},
{
"lessThan": "24.9.23",
"status": "affected",
"version": "24.8.0",
"versionType": "maven"
},
{
"lessThan": "24.10.11",
"status": "affected",
"version": "24.10.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.0.13",
"status": "affected",
"version": "25.0.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.1.13",
"status": "affected",
"version": "25.1.0",
"versionType": "maven"
},
{
"lessThan": "25.2.10",
"status": "affected",
"version": "25.2.0",
"versionType": "maven"
},
{
"lessThan": "25.3.1",
"status": "affected",
"version": "25.3.0",
"versionType": "maven"
}
]
},
{
"collectionURL": "https://registry.npmjs.org",
"defaultStatus": "unaffected",
"packageName": "@vaadin/charts",
"product": "@vaadin/charts",
"repo": "https://github.com/vaadin/web-components",
"vendor": "vaadin",
"versions": [
{
"lessThan": "23.6.7",
"status": "affected",
"version": "22.0.0",
"versionType": "semver"
},
{
"lessThan": "24.4.19",
"status": "affected",
"version": "24.0.0",
"versionType": "semver"
},
{
"lessThan": "24.7.13",
"status": "affected",
"version": "24.5.0",
"versionType": "semver"
},
{
"lessThan": "24.9.19",
"status": "affected",
"version": "24.8.0",
"versionType": "semver"
},
{
"lessThan": "24.10.7",
"status": "affected",
"version": "24.10.0",
"versionType": "semver"
},
{
"lessThanOrEqual": "25.0.13",
"status": "affected",
"version": "25.0.0",
"versionType": "semver"
},
{
"lessThanOrEqual": "25.1.14",
"status": "affected",
"version": "25.1.0",
"versionType": "semver"
},
{
"lessThan": "25.2.14",
"status": "affected",
"version": "25.2.0",
"versionType": "semver"
},
{
"lessThan": "25.3.1",
"status": "affected",
"version": "25.3.0",
"versionType": "semver"
}
]
}
],
"source": "security@vaadin.com"
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "Vaadin Charts renders charts with the Highcharts library and pins an exact version of it, 9.2.2 in Vaadin 22 to 24 and 12.2.0 in Vaadin 25, so an application cannot remove these vulnerabilities by upgrading Highcharts on its own. Highsoft disclosed several vulnerabilities in that library that are reachable through the chart configuration: writes to Object.prototype through dotted series.keys paths, and cross-site scripting through credits.href, through breadcrumbs.style, through HTML text parsing while printing, and through xlink:href attributes in exported charts. An application is affected where data an attacker controls reaches the chart configuration, for example through additionalOptions, through updateConfiguration(), or through text options that accept markup. The fixed Vaadin versions apply Highsoft\u0027s recommended workarounds to the bundled Highcharts when it loads, and keep the same Highcharts version.\n\n\nUsers of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include:\n\nProduct version\nVaadin 22.0.0 - 23.6.15\nVaadin 24.0.0 - 24.4.23\nVaadin 24.5.0 - 24.7.15\nVaadin 24.8.0 - 24.9.22\nVaadin 24.10.0 - 24.10.10\nVaadin 25.0.0 - 25.2.9\nVaadin 25.3.0\n\nMitigation\nUpgrade to 23.6.16\nUpgrade to 24.4.24\nUpgrade to 24.7.16\nUpgrade to 24.9.23\nUpgrade to 24.10.11\nUpgrade to 25.2.10\nUpgrade to 25.3.1 or newer\n\nPlease note that Vaadin versions 10-13 and 15-22 are no longer supported and you should update either to the latest 23, 24, 25 version.\n\nArtifacts\nMaven coordinates / Vulnerable versions / Fixed version\ncom.vaadin:vaadin / 22.0.0 - 23.6.15 / \u003e=23.6.16\ncom.vaadin:vaadin / 24.0.0 - 24.4.23 / \u003e=24.4.24\ncom.vaadin:vaadin / 24.5.0 - 24.7.15 / \u003e=24.7.16\ncom.vaadin:vaadin / 24.8.0 - 24.9.22 / \u003e=24.9.23\ncom.vaadin:vaadin / 24.10.0 - 24.10.10 / \u003e=24.10.11\ncom.vaadin:vaadin / 25.0.0 - 25.0.13 / \u003e=25.2.10\ncom.vaadin:vaadin / 25.1.0 - 25.1.13 / \u003e=25.2.10\ncom.vaadin:vaadin / 25.2.0 - 25.2.9 / \u003e=25.2.10\ncom.vaadin:vaadin / 25.3.0 / \u003e=25.3.1\ncom.vaadin:vaadin-charts-flow / 22.0.0 - 23.6.15 / \u003e=23.6.16\ncom.vaadin:vaadin-charts-flow / 24.0.0 - 24.4.22 / \u003e=24.4.24\ncom.vaadin:vaadin-charts-flow / 24.5.0 - 24.7.14 / \u003e=24.7.15\ncom.vaadin:vaadin-charts-flow / 24.8.0 - 24.9.22 / \u003e=24.9.23\ncom.vaadin:vaadin-charts-flow / 24.10.0 - 24.10.10 / \u003e=24.10.11\ncom.vaadin:vaadin-charts-flow / 25.0.0 - 25.0.13 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow / 25.1.0 - 25.1.13 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow / 25.2.0 - 25.2.9 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow / 25.3.0 / \u003e=25.3.1\ncom.vaadin:vaadin-charts-flow-svg-generator / 21.0.0 - 23.6.15 / \u003e=23.6.16\ncom.vaadin:vaadin-charts-flow-svg-generator / 24.0.0 - 24.4.22 / \u003e=24.4.24\ncom.vaadin:vaadin-charts-flow-svg-generator / 24.5.0 - 24.7.14 / \u003e=24.7.15\ncom.vaadin:vaadin-charts-flow-svg-generator / 24.8.0 - 24.9.22 / \u003e=24.9.23\ncom.vaadin:vaadin-charts-flow-svg-generator / 24.10.0 - 24.10.10 / \u003e=24.10.11\ncom.vaadin:vaadin-charts-flow-svg-generator / 25.0.0 - 25.0.13 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow-svg-generator / 25.1.0 - 25.1.13 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow-svg-generator / 25.2.0 - 25.2.9 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow-svg-generator / 25.3.0 / \u003e=25.3.1\n\nnpm packages\nnpm package / Vulnerable versions / Fixed version\n@vaadin/charts / 22.0.0 - 23.6.6 / \u003e=23.6.7\n@vaadin/charts / 24.0.0 - 24.4.18 / \u003e=24.4.19\n@vaadin/charts / 24.5.0 - 24.7.12 / \u003e=24.7.13\n@vaadin/charts / 24.8.0 - 24.9.18 / \u003e=24.9.19\n@vaadin/charts / 24.10.0 - 24.10.6 / \u003e=24.10.7\n@vaadin/charts / 25.0.0 - 25.0.13 / \u003e=25.2.14\n@vaadin/charts / 25.1.0 - 25.1.14 / \u003e=25.2.14\n@vaadin/charts / 25.2.0 - 25.2.13 / \u003e=25.2.14\n@vaadin/charts / 25.3.0 / \u003e=25.3.1"
}
],
"id": "CVE-2026-107588",
"lastModified": "2026-10-30T18:17:18.947",
"metrics": {
"cvssMetricV40": [
{
"cvssData": {
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"availabilityRequirement": "NOT_DEFINED",
"baseScore": 8.4,
"baseSeverity": "HIGH",
"confidentialityRequirement": "NOT_DEFINED",
"exploitMaturity": "NOT_DEFINED",
"integrityRequirement": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"privilegesRequired": "LOW",
"providerUrgency": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "LOW",
"subIntegrityImpact": "LOW",
"userInteraction": "ACTIVE",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH",
"vulnerabilityResponseEffort": "NOT_DEFINED"
},
"source": "security@vaadin.com",
"type": "Secondary"
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-107588",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-30T17:14:06.374418Z",
"version": "2.0.3"
}
}
]
},
"published": "2026-10-21T19:16:57.847",
"references": [
{
"source": "security@vaadin.com",
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-35rr-xwfh-x789"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-5793-x2q3-c3q7"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-65hg-cf3f-5m39"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-gfvx-2c2g-38wq"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-mw4f-gj5x-6xr4"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-rmqc-xvr3-v46c"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/flow-components/pull/10283"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/flow-components/pull/10284"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/flow-components/pull/10285"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/flow-components/pull/10290"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/flow-components/pull/10291"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/flow-components/pull/10292"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/flow-components/pull/10293"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/flow-components/pull/10299"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/flow-components/pull/10300"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/web-components/pull/12886"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/web-components/pull/12887"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/web-components/pull/12897"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/web-components/pull/12898"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/web-components/pull/12899"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/web-components/pull/12900"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/web-components/pull/12901"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/web-components/pull/12918"
},
{
"source": "security@vaadin.com",
"url": "https://github.com/vaadin/web-components/pull/12919"
},
{
"source": "security@vaadin.com",
"url": "https://vaadin.com/security/cve-2026-107588"
}
],
"sourceIdentifier": "security@vaadin.com",
"vulnStatus": "Awaiting Analysis",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "CWE-79"
},
{
"lang": "en",
"value": "CWE-1321"
}
],
"source": "security@vaadin.com",
"type": "Secondary"
}
]
}
},
"redhat_vex": {
"current_release_date": "2026-11-07T11:14:42+00:00",
"cve": "CVE-2026-107588",
"id": "CVE-2026-107588",
"initial_release_date": "2026-10-21T18:22:47.593000+00:00",
"product_status:known_not_affected": "1",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "com.vaadin/vaadin: com.vaadin/vaadin-charts-flow: com.vaadin/vaadin-charts-flow-svg-generator: @vaadin/charts: vaadin-charts: Cross-Site Scripting via untrusted chart configuration",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-107588.json",
"version": "3"
},
"vulnrichment": {
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-107588",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-30T17:14:06.374418Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T17:16:18.110Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"collectionURL": "https://repo.maven.apache.org/maven2",
"defaultStatus": "unaffected",
"packageName": "com.vaadin:vaadin",
"product": "vaadin",
"repo": "https://github.com/vaadin/platform",
"vendor": "vaadin",
"versions": [
{
"lessThan": "23.6.16",
"status": "affected",
"version": "22.0.0",
"versionType": "maven"
},
{
"lessThan": "24.4.24",
"status": "affected",
"version": "24.0.0",
"versionType": "maven"
},
{
"lessThan": "24.7.16",
"status": "affected",
"version": "24.5.0",
"versionType": "maven"
},
{
"lessThan": "24.9.23",
"status": "affected",
"version": "24.8.0",
"versionType": "maven"
},
{
"lessThan": "24.10.11",
"status": "affected",
"version": "24.10.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.0.13",
"status": "affected",
"version": "25.0.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.1.13",
"status": "affected",
"version": "25.1.0",
"versionType": "maven"
},
{
"lessThan": "25.2.10",
"status": "affected",
"version": "25.2.0",
"versionType": "maven"
},
{
"lessThan": "25.3.1",
"status": "affected",
"version": "25.3.0",
"versionType": "maven"
}
]
},
{
"collectionURL": "https://repo.maven.apache.org/maven2",
"defaultStatus": "unaffected",
"packageName": "com.vaadin:vaadin-charts-flow",
"product": "vaadin-charts-flow",
"repo": "https://github.com/vaadin/flow-components",
"vendor": "vaadin",
"versions": [
{
"lessThan": "23.6.16",
"status": "affected",
"version": "22.0.0",
"versionType": "maven"
},
{
"lessThan": "24.4.24",
"status": "affected",
"version": "24.0.0",
"versionType": "maven"
},
{
"lessThan": "24.7.15",
"status": "affected",
"version": "24.5.0",
"versionType": "maven"
},
{
"lessThan": "24.9.23",
"status": "affected",
"version": "24.8.0",
"versionType": "maven"
},
{
"lessThan": "24.10.11",
"status": "affected",
"version": "24.10.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.0.13",
"status": "affected",
"version": "25.0.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.1.13",
"status": "affected",
"version": "25.1.0",
"versionType": "maven"
},
{
"lessThan": "25.2.10",
"status": "affected",
"version": "25.2.0",
"versionType": "maven"
},
{
"lessThan": "25.3.1",
"status": "affected",
"version": "25.3.0",
"versionType": "maven"
}
]
},
{
"collectionURL": "https://repo.maven.apache.org/maven2",
"defaultStatus": "unaffected",
"packageName": "com.vaadin:vaadin-charts-flow-svg-generator",
"product": "vaadin-charts-flow-svg-generator",
"repo": "https://github.com/vaadin/flow-components",
"vendor": "vaadin",
"versions": [
{
"lessThan": "23.6.16",
"status": "affected",
"version": "21.0.0",
"versionType": "maven"
},
{
"lessThan": "24.4.24",
"status": "affected",
"version": "24.0.0",
"versionType": "maven"
},
{
"lessThan": "24.7.15",
"status": "affected",
"version": "24.5.0",
"versionType": "maven"
},
{
"lessThan": "24.9.23",
"status": "affected",
"version": "24.8.0",
"versionType": "maven"
},
{
"lessThan": "24.10.11",
"status": "affected",
"version": "24.10.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.0.13",
"status": "affected",
"version": "25.0.0",
"versionType": "maven"
},
{
"lessThanOrEqual": "25.1.13",
"status": "affected",
"version": "25.1.0",
"versionType": "maven"
},
{
"lessThan": "25.2.10",
"status": "affected",
"version": "25.2.0",
"versionType": "maven"
},
{
"lessThan": "25.3.1",
"status": "affected",
"version": "25.3.0",
"versionType": "maven"
}
]
},
{
"collectionURL": "https://registry.npmjs.org",
"defaultStatus": "unaffected",
"packageName": "@vaadin/charts",
"product": "@vaadin/charts",
"repo": "https://github.com/vaadin/web-components",
"vendor": "vaadin",
"versions": [
{
"lessThan": "23.6.7",
"status": "affected",
"version": "22.0.0",
"versionType": "semver"
},
{
"lessThan": "24.4.19",
"status": "affected",
"version": "24.0.0",
"versionType": "semver"
},
{
"lessThan": "24.7.13",
"status": "affected",
"version": "24.5.0",
"versionType": "semver"
},
{
"lessThan": "24.9.19",
"status": "affected",
"version": "24.8.0",
"versionType": "semver"
},
{
"lessThan": "24.10.7",
"status": "affected",
"version": "24.10.0",
"versionType": "semver"
},
{
"lessThanOrEqual": "25.0.13",
"status": "affected",
"version": "25.0.0",
"versionType": "semver"
},
{
"lessThanOrEqual": "25.1.14",
"status": "affected",
"version": "25.1.0",
"versionType": "semver"
},
{
"lessThan": "25.2.14",
"status": "affected",
"version": "25.2.0",
"versionType": "semver"
},
{
"lessThan": "25.3.1",
"status": "affected",
"version": "25.3.0",
"versionType": "semver"
}
]
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cspan style=\"background-color: rgba(232, 232, 232, 0.04);\"\u003eVaadin Charts renders charts with the Highcharts library and pins an exact version of it, 9.2.2 in Vaadin 22 to 24 and 12.2.0 in Vaadin 25, so an application cannot remove these vulnerabilities by upgrading Highcharts on its own. Highsoft disclosed several vulnerabilities in that library that are reachable through the chart configuration: writes to Object.prototype through dotted series.keys paths, and cross-site scripting through credits.href, through breadcrumbs.style, through HTML text parsing while printing, and through xlink:href attributes in exported charts. An application is affected where data an attacker controls reaches the chart configuration, for example through additionalOptions, through updateConfiguration(), or through text options that accept markup. The fixed Vaadin versions apply Highsoft\u0027s recommended workarounds to the bundled Highcharts when it loads, and keep the same Highcharts version.\u003cbr\u003e\u003cbr\u003e\u003cbr\u003eUsers of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include:\u003cbr\u003e\u003cbr\u003eProduct version\u003cbr\u003eVaadin 22.0.0 - 23.6.15\u003cbr\u003eVaadin 24.0.0 - 24.4.23\u003cbr\u003eVaadin 24.5.0 - 24.7.15\u003cbr\u003eVaadin 24.8.0 - 24.9.22\u003cbr\u003eVaadin 24.10.0 - 24.10.10\u003cbr\u003eVaadin 25.0.0 - 25.2.9\u003cbr\u003eVaadin 25.3.0\u003cbr\u003e\u003cbr\u003eMitigation\u003cbr\u003eUpgrade to 23.6.16\u003cbr\u003eUpgrade to 24.4.24\u003cbr\u003eUpgrade to 24.7.16\u003cbr\u003eUpgrade to 24.9.23\u003cbr\u003eUpgrade to 24.10.11\u003cbr\u003eUpgrade to 25.2.10\u003cbr\u003eUpgrade to 25.3.1 or newer\u003cbr\u003e\u003cbr\u003ePlease note that Vaadin versions 10-13 and 15-22 are no longer supported and you should update either to the latest 23, 24, 25 version.\u003cbr\u003e\u003cbr\u003eArtifacts\u003ctable\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003eMaven coordinates\u003c/td\u003e\u003ctd\u003eVulnerable versions\u003c/td\u003e\u003ctd\u003eFixed version\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e22.0.0 - 23.6.15\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;23.6.16\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.0.0 - 24.4.23\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.4.24\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.5.0 - 24.7.15\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.7.16\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.8.0 - 24.9.22\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.9.23\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.10.0 - 24.10.10\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.10.11\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.0.0 - 25.0.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.1.0 - 25.1.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.2.0 - 25.2.9\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.3.0\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.3.1\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e22.0.0 - 23.6.15\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;23.6.16\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.0.0 - 24.4.22\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.4.24\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.5.0 - 24.7.14\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.7.15\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.8.0 - 24.9.22\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.9.23\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.10.0 - 24.10.10\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.10.11\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.0.0 - 25.0.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.1.0 - 25.1.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.2.0 - 25.2.9\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.3.0\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.3.1\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e21.0.0 - 23.6.15\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;23.6.16\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.0.0 - 24.4.22\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.4.24\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.5.0 - 24.7.14\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.7.15\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.8.0 - 24.9.22\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.9.23\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.10.0 - 24.10.10\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.10.11\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.0.0 - 25.0.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.1.0 - 25.1.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.2.0 - 25.2.9\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.10\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003ecom.vaadin:vaadin-charts-flow-svg-generator\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.3.0\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.3.1\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\u003cbr\u003e\u003cbr\u003enpm packages\u003ctable\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003enpm package\u003c/td\u003e\u003ctd\u003eVulnerable versions\u003c/td\u003e\u003ctd\u003eFixed version\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e22.0.0 - 23.6.6\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;23.6.7\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.0.0 - 24.4.18\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.4.19\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.5.0 - 24.7.12\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.7.13\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.8.0 - 24.9.18\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.9.19\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e24.10.0 - 24.10.6\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;24.10.7\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.0.0 - 25.0.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.14\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.1.0 - 25.1.14\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.14\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.2.0 - 25.2.13\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.2.14\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e@vaadin/charts\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e25.3.0\u003cbr\u003e\u003c/td\u003e\u003ctd\u003e\u0026ge;25.3.1\u003cbr\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\u003c/span\u003e"
}
],
"value": "Vaadin Charts renders charts with the Highcharts library and pins an exact version of it, 9.2.2 in Vaadin 22 to 24 and 12.2.0 in Vaadin 25, so an application cannot remove these vulnerabilities by upgrading Highcharts on its own. Highsoft disclosed several vulnerabilities in that library that are reachable through the chart configuration: writes to Object.prototype through dotted series.keys paths, and cross-site scripting through credits.href, through breadcrumbs.style, through HTML text parsing while printing, and through xlink:href attributes in exported charts. An application is affected where data an attacker controls reaches the chart configuration, for example through additionalOptions, through updateConfiguration(), or through text options that accept markup. The fixed Vaadin versions apply Highsoft\u0027s recommended workarounds to the bundled Highcharts when it loads, and keep the same Highcharts version.\n\n\nUsers of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include:\n\nProduct version\nVaadin 22.0.0 - 23.6.15\nVaadin 24.0.0 - 24.4.23\nVaadin 24.5.0 - 24.7.15\nVaadin 24.8.0 - 24.9.22\nVaadin 24.10.0 - 24.10.10\nVaadin 25.0.0 - 25.2.9\nVaadin 25.3.0\n\nMitigation\nUpgrade to 23.6.16\nUpgrade to 24.4.24\nUpgrade to 24.7.16\nUpgrade to 24.9.23\nUpgrade to 24.10.11\nUpgrade to 25.2.10\nUpgrade to 25.3.1 or newer\n\nPlease note that Vaadin versions 10-13 and 15-22 are no longer supported and you should update either to the latest 23, 24, 25 version.\n\nArtifacts\nMaven coordinates / Vulnerable versions / Fixed version\ncom.vaadin:vaadin / 22.0.0 - 23.6.15 / \u003e=23.6.16\ncom.vaadin:vaadin / 24.0.0 - 24.4.23 / \u003e=24.4.24\ncom.vaadin:vaadin / 24.5.0 - 24.7.15 / \u003e=24.7.16\ncom.vaadin:vaadin / 24.8.0 - 24.9.22 / \u003e=24.9.23\ncom.vaadin:vaadin / 24.10.0 - 24.10.10 / \u003e=24.10.11\ncom.vaadin:vaadin / 25.0.0 - 25.0.13 / \u003e=25.2.10\ncom.vaadin:vaadin / 25.1.0 - 25.1.13 / \u003e=25.2.10\ncom.vaadin:vaadin / 25.2.0 - 25.2.9 / \u003e=25.2.10\ncom.vaadin:vaadin / 25.3.0 / \u003e=25.3.1\ncom.vaadin:vaadin-charts-flow / 22.0.0 - 23.6.15 / \u003e=23.6.16\ncom.vaadin:vaadin-charts-flow / 24.0.0 - 24.4.22 / \u003e=24.4.24\ncom.vaadin:vaadin-charts-flow / 24.5.0 - 24.7.14 / \u003e=24.7.15\ncom.vaadin:vaadin-charts-flow / 24.8.0 - 24.9.22 / \u003e=24.9.23\ncom.vaadin:vaadin-charts-flow / 24.10.0 - 24.10.10 / \u003e=24.10.11\ncom.vaadin:vaadin-charts-flow / 25.0.0 - 25.0.13 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow / 25.1.0 - 25.1.13 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow / 25.2.0 - 25.2.9 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow / 25.3.0 / \u003e=25.3.1\ncom.vaadin:vaadin-charts-flow-svg-generator / 21.0.0 - 23.6.15 / \u003e=23.6.16\ncom.vaadin:vaadin-charts-flow-svg-generator / 24.0.0 - 24.4.22 / \u003e=24.4.24\ncom.vaadin:vaadin-charts-flow-svg-generator / 24.5.0 - 24.7.14 / \u003e=24.7.15\ncom.vaadin:vaadin-charts-flow-svg-generator / 24.8.0 - 24.9.22 / \u003e=24.9.23\ncom.vaadin:vaadin-charts-flow-svg-generator / 24.10.0 - 24.10.10 / \u003e=24.10.11\ncom.vaadin:vaadin-charts-flow-svg-generator / 25.0.0 - 25.0.13 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow-svg-generator / 25.1.0 - 25.1.13 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow-svg-generator / 25.2.0 - 25.2.9 / \u003e=25.2.10\ncom.vaadin:vaadin-charts-flow-svg-generator / 25.3.0 / \u003e=25.3.1\n\nnpm packages\nnpm package / Vulnerable versions / Fixed version\n@vaadin/charts / 22.0.0 - 23.6.6 / \u003e=23.6.7\n@vaadin/charts / 24.0.0 - 24.4.18 / \u003e=24.4.19\n@vaadin/charts / 24.5.0 - 24.7.12 / \u003e=24.7.13\n@vaadin/charts / 24.8.0 - 24.9.18 / \u003e=24.9.19\n@vaadin/charts / 24.10.0 - 24.10.6 / \u003e=24.10.7\n@vaadin/charts / 25.0.0 - 25.0.13 / \u003e=25.2.14\n@vaadin/charts / 25.1.0 - 25.1.14 / \u003e=25.2.14\n@vaadin/charts / 25.2.0 - 25.2.13 / \u003e=25.2.14\n@vaadin/charts / 25.3.0 / \u003e=25.3.1"
}
],
"impacts": [
{
"capecId": "CAPEC-63",
"descriptions": [
{
"lang": "en",
"value": "CAPEC-63 Cross-Site Scripting (XSS)"
}
]
},
{
"capecId": "CAPEC-77",
"descriptions": [
{
"lang": "en",
"value": "CAPEC-77 Manipulating User-Controlled Variables"
}
]
}
],
"metrics": [
{
"cvssV4_0": {
"Automatable": "NO",
"Recovery": "AUTOMATIC",
"Safety": "NEGLIGIBLE",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"baseScore": 8.4,
"baseSeverity": "HIGH",
"privilegesRequired": "LOW",
"providerUrgency": "CLEAR",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "LOW",
"subIntegrityImpact": "LOW",
"userInteraction": "ACTIVE",
"valueDensity": "DIFFUSE",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH",
"vulnerabilityResponseEffort": "LOW"
},
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-79",
"description": "CWE-79 Improper Neutralization of Input During Web Page Generation (\u0027Cross-site Scripting\u0027)",
"lang": "en",
"type": "CWE"
},
{
"cweId": "CWE-1321",
"description": "CWE-1321 Improperly Controlled Modification of Object Prototype Attributes (\u0027Prototype Pollution\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T18:22:47.593Z",
"orgId": "9e0f3122-90e9-42d5-93de-8c6b98deef7e",
"shortName": "Vaadin"
},
"references": [
{
"url": "https://vaadin.com/security/cve-2026-107588"
},
{
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-rmqc-xvr3-v46c"
},
{
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-5793-x2q3-c3q7"
},
{
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-35rr-xwfh-x789"
},
{
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-65hg-cf3f-5m39"
},
{
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-mw4f-gj5x-6xr4"
},
{
"url": "https://github.com/highcharts/highcharts/security/advisories/GHSA-gfvx-2c2g-38wq"
},
{
"url": "https://github.com/vaadin/web-components/pull/12886"
},
{
"url": "https://github.com/vaadin/web-components/pull/12887"
},
{
"url": "https://github.com/vaadin/web-components/pull/12897"
},
{
"url": "https://github.com/vaadin/web-components/pull/12898"
},
{
"url": "https://github.com/vaadin/web-components/pull/12899"
},
{
"url": "https://github.com/vaadin/web-components/pull/12900"
},
{
"url": "https://github.com/vaadin/web-components/pull/12901"
},
{
"url": "https://github.com/vaadin/web-components/pull/12918"
},
{
"url": "https://github.com/vaadin/web-components/pull/12919"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10283"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10284"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10285"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10290"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10291"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10292"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10293"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10299"
},
{
"url": "https://github.com/vaadin/flow-components/pull/10300"
}
],
"solutions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "\u003cb\u003e\u003cspan style=\"background-color: transparent;\"\u003eUsers of affected versions should apply the following mitigation or upgrade.\u003c/span\u003e\u003c/b\u003e\u003cbr\u003e"
}
],
"value": "Users of affected versions should apply the following mitigation or upgrade."
}
],
"source": {
"discovery": "EXTERNAL"
},
"title": "Multiple Vulnerabilities in the Highcharts Library Bundled with Vaadin Charts",
"workarounds": [
{
"lang": "en",
"value": "Do not pass data the application does not control to the chart configuration. That covers the additionalOptions property of \u003cvaadin-chart\u003e and \u003cvaadin-chart-series\u003e, updateConfiguration() and the configuration property, setKeys() and addKey() on the PlotOptions classes, Credits.setUnsafeHref(), and the text options that accept markup such as Title.setText(), Subtitle.setText(), axis labels, data labels and tooltip formats. Charts whose configuration the application builds itself are not affected."
}
],
"x_generator": {
"engine": "Vulnogram 0.5.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "9e0f3122-90e9-42d5-93de-8c6b98deef7e",
"assignerShortName": "Vaadin",
"cveId": "CVE-2026-107588",
"datePublished": "2026-10-21T18:22:47.593Z",
"dateReserved": "2026-10-08T11:32:35.498Z",
"dateUpdated": "2026-10-30T17:16:23.814Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
How durations are calculated
Following the VTEM framework (Black Hat USA 2015), time to patch starts when the vendor or a coordinator was informed, total time to patch at discovery, and disclosure to patch at public disclosure; vendor response time runs from the report to its acknowledgement. Time to exploit and time unpatched start at the earliest discovery or report, falling back to public disclosure. Unpatched time ends at the first recorded patch, or the calculation time when no patch is recorded. Exploitation to patch shows the interval between those two events; a published proof of concept is a public exploit, not exploitation.
Each result shows its source dates. A negative interval means the end event came first; when date-only inputs leave the order open, the result says so. Date-only inputs are approximate. The earliest evidence wins: KEV report dates and sightings are labelled as such. Records describing another vulnerability are listed but never calculated from, and a PoC alone does not establish exploitation. Missing patch evidence does not prove that no patch exists. Filters below change the event list only.
Loading timeline…
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.