CVE-2026-110737
Push Endpoint Returns Permissive CORS Headers
The push endpoint of a Vaadin application that uses server push reflects the request Origin into the Access-Control-Allow-Origin response header and allows credentials, because Flow configures Atmosphere with DROP_ACCESS_CONTROL_ALLOW_ORIGIN_HEADER set to false and its CorsInterceptor then echoes whatever Origin the request carries. A page on any origin can therefore make a cross origin request to that endpoint with the user's cookies and read the response, although reading anything useful also requires the push identifier of that session. Applications that do not use @Push are not affected, and neither is the WebSocket transport. The behaviour was introduced in January 2015 and is present in every Flow release and in Vaadin Framework from 7.1.0, which is when push was added. Users of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include: Product version Vaadin 14.14.0 - 14.14.7 Vaadin 23.6.0 - 23.6.16 Vaadin 24.4.0 - 24.4.25 Vaadin 24.5.0 - 24.5.15 Vaadin 24.6.0 - 24.6.13 Vaadin 24.7.0 - 24.7.16 Vaadin 24.8.0 - 24.8.17 Vaadin 24.9.0 - 24.9.23 Vaadin 24.10.0 - 24.10.11 Vaadin 25.0.0 - 25.0.13 Vaadin 25.1.0 - 25.1.13 Vaadin 25.2.0 - 25.2.10 Vaadin 25.3.0 - 25.3.2 Vaadin Framework 7.1.0 - 7.7.54 Vaadin Framework 8.0.0 - 8.32.1 Mitigation Upgrade to 14.14.8 Upgrade to 23.6.17 Upgrade to 24.4.26 Upgrade to 24.7.17 Upgrade to 24.7.17 Upgrade to 24.7.17 Upgrade to 24.9.24 Upgrade to 24.9.24 Upgrade to 24.10.12 Upgrade to 25.2.11 Upgrade to 25.2.11 Upgrade to 25.2.11 Upgrade to 25.3.3 Upgrade to 7.7.55 Upgrade to 8.32.2 Please note that Vaadin versions 10-13 and 15-22 are no longer supported and you should update either to the latest 14, 23, 24, 25 version. Artifacts under com.vaadin Maven coordinates / Vulnerable versions / Fixed version vaadin / 14.14.0 - 14.14.7 / >=14.14.8 vaadin / 23.6.0 - 23.6.16 / >=23.6.17 vaadin / 24.4.0 - 24.4.25 / >=24.4.26 vaadin / 24.5.0 - 24.5.15 / >=24.7.17 vaadin / 24.6.0 - 24.6.13 / >=24.7.17 vaadin / 24.7.0 - 24.7.16 / >=24.7.17 vaadin / 24.8.0 - 24.8.17 / >=24.9.24 vaadin / 24.9.0 - 24.9.23 / >=24.9.24 vaadin / 24.10.0 - 24.10.11 / >=24.10.12 vaadin / 25.0.0 - 25.0.13 / >=25.2.11 vaadin / 25.1.0 - 25.1.13 / >=25.2.11 vaadin / 25.2.0 - 25.2.10 / >=25.2.11 vaadin / 25.3.0 - 25.3.2 / >=25.3.3 vaadin-core / 14.14.0 - 14.14.7 / >=14.14.8 vaadin-core / 23.6.0 - 23.6.16 / >=23.6.17 vaadin-core / 24.4.0 - 24.4.25 / >=24.4.26 vaadin-core / 24.5.0 - 24.5.15 / >=24.7.17 vaadin-core / 24.6.0 - 24.6.13 / >=24.7.17 vaadin-core / 24.7.0 - 24.7.16 / >=24.7.17 vaadin-core / 24.8.0 - 24.8.17 / >=24.9.24 vaadin-core / 24.9.0 - 24.9.23 / >=24.9.24 vaadin-core / 24.10.0 - 24.10.11 / >=24.10.12 vaadin-core / 25.0.0 - 25.0.13 / >=25.2.11 vaadin-core / 25.1.0 - 25.1.13 / >=25.2.11 vaadin-core / 25.2.0 - 25.2.10 / >=25.2.11 vaadin-core / 25.3.0 - 25.3.2 / >=25.3.3 flow-server / 2.13.0 - 2.13.7 / >=2.13.8 flow-server / 23.6.0 - 23.6.15 / >=23.6.16 flow-server / 24.4.0 - 24.4.18 / >=24.4.19 flow-server / 24.5.0 - 24.5.17 / >=24.7.17 flow-server / 24.6.0 - 24.6.14 / >=24.7.17 flow-server / 24.7.0 - 24.7.15 / >=24.7.16 flow-server / 24.8.0 - 24.8.16 / >=24.9.24 flow-server / 24.9.0 - 24.9.28 / >=24.9.29 flow-server / 24.10.0 - 24.10.14 / >=24.10.15 flow-server / 25.0.0 - 25.0.15 / >=25.2.11 flow-server / 25.1.0 - 25.1.18 / >=25.1.19 flow-server / 25.2.0 - 25.2.12 / >=25.2.13 flow-server / 25.3.0 - 25.3.3 / >=25.3.4 vaadin-server / 7.1.0 - 7.7.54 / >=7.7.55 vaadin-server / 8.0.0 - 8.32.1 / >=8.32.2 vaadin-server-mpr-jakarta / 7.7.36 - 7.7.54 / >=7.7.55 vaadin-server-mpr-jakarta / 8.18.0 - 8.32.1 / >=8.32.2
Fixes and workarounds
Fix
Users of affected versions should apply the following mitigation or upgrade.
Source: CNA: VaadinWorkaround
Set the servlet init parameter org.atmosphere.cpr.dropAccessControlAllowOriginHeader to true on the Vaadin servlet, which stops the header being emitted without upgrading. In a Spring Boot application the Vaadin servlet has to be registered explicitly for the parameter to be applied.
Source: CNA: VaadinAffected products and versions
| Product | Versions | Authority |
|---|---|---|
| vaadin vaadin com.vaadin:vaadin
https://repo.maven.apache.org/maven2 |
≥ 14.14.0; < 14.14.8 (affected, maven) ≥ 23.6.0; < 23.6.17 (affected, maven) ≥ 24.4.0; < 24.4.26 (affected, maven) ≥ 24.5.0; ≤ 24.5.15 (affected, maven) ≥ 24.6.0; ≤ 24.6.13 (affected, maven) ≥ 24.7.0; < 24.7.17 (affected, maven) ≥ 24.8.0; ≤ 24.8.17 (affected, maven) ≥ 24.9.0; < 24.9.24 (affected, maven) ≥ 24.10.0; < 24.10.12 (affected, maven) ≥ 25.0.0; ≤ 25.0.13 (affected, maven) ≥ 25.1.0; ≤ 25.1.13 (affected, maven) ≥ 25.2.0; < 25.2.11 (affected, maven) ≥ 25.3.0; < 25.3.3 (affected, maven) Other versions: unaffected |
CNA: Vaadin |
| vaadin vaadin com.vaadin:vaadin-core
https://repo.maven.apache.org/maven2 |
≥ 14.14.0; < 14.14.8 (affected, maven) ≥ 23.6.0; < 23.6.17 (affected, maven) ≥ 24.4.0; < 24.4.26 (affected, maven) ≥ 24.5.0; ≤ 24.5.15 (affected, maven) ≥ 24.6.0; ≤ 24.6.13 (affected, maven) ≥ 24.7.0; < 24.7.17 (affected, maven) ≥ 24.8.0; ≤ 24.8.17 (affected, maven) ≥ 24.9.0; < 24.9.24 (affected, maven) ≥ 24.10.0; < 24.10.12 (affected, maven) ≥ 25.0.0; ≤ 25.0.13 (affected, maven) ≥ 25.1.0; ≤ 25.1.13 (affected, maven) ≥ 25.2.0; < 25.2.11 (affected, maven) ≥ 25.3.0; < 25.3.3 (affected, maven) Other versions: unaffected |
CNA: Vaadin |
| flow vaadin com.vaadin:flow-server
https://repo.maven.apache.org/maven2 |
≥ 2.13.0; < 2.13.8 (affected, maven) ≥ 23.6.0; < 23.6.16 (affected, maven) ≥ 24.4.0; < 24.4.19 (affected, maven) ≥ 24.5.0; ≤ 24.5.17 (affected, maven) ≥ 24.6.0; ≤ 24.6.14 (affected, maven) ≥ 24.7.0; < 24.7.16 (affected, maven) ≥ 24.8.0; ≤ 24.8.16 (affected, maven) ≥ 24.9.0; < 24.9.29 (affected, maven) ≥ 24.10.0; < 24.10.15 (affected, maven) ≥ 25.0.0; ≤ 25.0.15 (affected, maven) ≥ 25.1.0; < 25.1.19 (affected, maven) ≥ 25.2.0; < 25.2.13 (affected, maven) ≥ 25.3.0; < 25.3.4 (affected, maven) Other versions: unaffected |
CNA: Vaadin |
| framework vaadin com.vaadin:vaadin-server
https://repo.maven.apache.org/maven2 |
≥ 7.1.0; < 7.7.55 (affected, maven) ≥ 8.0.0; < 8.32.2 (affected, maven) Other versions: unaffected |
CNA: Vaadin |
| framework vaadin com.vaadin:vaadin-server-mpr-jakarta
https://repo.maven.apache.org/maven2 |
≥ 7.7.36; < 7.7.55 (affected, maven) ≥ 8.18.0; < 8.32.2 (affected, maven) Other versions: unaffected |
CNA: Vaadin |
Version ranges are source assertions. Check the vendor advisory and your installed configuration before determining exposure.
CVSS assessments
| Version / score | Vector | Authority |
|---|---|---|
| 4.0 / 2.3 low |
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N | CNA: Vaadin |
| 4.0 / 2.3 low |
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/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 | NVD: [email protected] |
Exploit evidence
- https://github.com/vaadin/flow/issues/26214
exploit · ADP: CISA-ADP
References
- https://vaadin.com/security/cve-2026-110737CNA: Vaadin
- https://github.com/vaadin/flow/issues/26214CNA: Vaadin
- https://github.com/vaadin/flow/pull/26215CNA: Vaadin
- https://github.com/vaadin/flow/issues/26214ADP: CISA-ADP · exploit
- https://github.com/vaadin/flow/issues/26214[email protected]
- https://github.com/vaadin/flow/pull/26215[email protected]
- https://vaadin.com/security/cve-2026-110737[email protected]
- https://github.com/vaadin/flow/issues/26214134c704f-9b21-4f2e-91b3-4a467353bcc0
For agents and automation
Read public disclosures for free as Markdown or JSON. Compatible browsers also expose native WebMCP tools to search disclosures, read this page, and discover API access.
Use the ontology-linked Cyber API with x402 pay per request, or a Y2 Pro or Elite API key with the intel:cyber scope.
Endpoints and access details
https://api.y2.dev/api/v2/cyber/cveshttps://api.y2.dev/api/v2/cyber/cves/{cveId}
A workspace owner or admin can create a Pro or Elite API key. Send Authorization: Bearer <Y2_API_KEY> from your trusted agent runtime.
For x402, omit Authorization and read the HTTP 402 payment challenge before signing a retry. Public browser tools do not make payments.