Skip to main content

Vaadin Flow CVE-2026-110737

| EUVDEUVD-2026-110721 LOW
Permissive Cross-domain Security Policy with Untrusted Domains (CWE-942)
2026-10-27 Vaadin
2.3
CVSS 4.0 · Vendor: Vaadin
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Lure authenticated victim to attacker page
  2. Delivery
    Send credentialed cross-origin request to push endpoint
  3. Exploit
    Server reflects Origin and allows credentials
  4. Execution
    Read push response (requires session push identifier)
  5. Impact
    Disclose session data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A02:2025 - Security Misconfiguration
ASVS 5.0
V13 - Configuration CORS policy restriction
Exploitation Conditions

Exploitation requires ALL of the following: the target application must use Vaadin server push (@Push) - applications without @Push are explicitly unaffected; the push transport must NOT be WebSocket (the WebSocket transport is explicitly unaffected, so this applies to long-polling/HTTP-based push); an authenticated victim must be tricked into visiting an attacker-controlled page while holding valid session cookies (UI:P); and to read anything useful beyond triggering the request, the attacker must also obtain the session's push identifier. The flaw exists in default push configuration because Flow sets Atmosphere's DROP_ACCESS_CONTROL_ALLOW_ORIGIN_HEADER to false and its CorsInterceptor echoes the request Origin with credentials allowed. The push-identifier requirement and the WebSocket/no-@Push carve-outs are the primary factors limiting real-world risk.

Impact

All decision signals point the same direction: this is a low-priority issue, not a high-CVSS-but-overrated one - the official CVSS 4.0 base score is only 2.3 (AV:N/AC:H/AT:N/PR:N/UI:P with VC:L and no integrity/availability impact), and vuln.today's decision label is 'monitor.' There is no EPSS score in the input, no CISA KEV listing, and no public exploit code: the three references are the Vaadin advisory, a GitHub issue, and the fix pull request, so this is 'no public exploit identified at time of analysis' (the PR is the patch, not a weaponized PoC). The CWE-942 CORS misconfiguration is real and long-lived (present since January 2015), but its practical impact is throttled by two independent requirements that the description states explicitly: the victim must be lured to an attacker page (UI:P), and reading anything useful also requires knowledge of the session's push identifier - which is why confidentiality is scored only Low and complexity High. Net: a genuine but minor information-disclosure weakness; patch during normal maintenance rather than as an emergency.

Exploit ScenarioDerived

An authenticated user of a Vaadin application that uses @Push (over a non-WebSocket transport) is lured to a malicious web page while logged in; the page issues a cross-origin fetch to the app's push endpoint with the user's cookies, and because the server reflects the request Origin and allows credentials, the attacker page can read the response. To extract meaningful session data the attacker additionally needs that session's push identifier, which limits realistic impact. No public exploit code was identified in the provided references.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 28, 2026

Cross-origin information disclosure in the Vaadin Flow server-push endpoint allows a page on any origin to make a credentialed request to an authenticated user's push endpoint and read the response, because Flow configures Atmosphere with DROP_ACCESS_CONTROL_ALLOW_ORIGIN_HEADER set to false and its CorsInterceptor echoes the request Origin into Access-Control-Allow-Origin while permitting credentials. Exposure is narrow: only applications using @Push over a non-WebSocket (HTTP/long-polling) transport are affected, and reading anything useful beyond triggering the request also requires the target session's push identifier, which is why CVSS 4.0 scores the issue only 2.3 and the priority decision is 'monitor'. No public exploit code was identified at time of analysis and there is no KEV listing or EPSS score in the available data.

RemediationAI

Vendor-released patches are available for every supported line: upgrade to Vaadin 14.14.8, 23.6.17, 24.4.26, 24.7.17 (covering the 24.5, 24.6 and 24.7 ranges), 24.9.24 (covering 24.8 and 24.9), 24.10.12, 25.2.11 (covering 25.0, 25.1 and 25.2) or 25.3.3; Vaadin Framework users should move to 7.7.55 or 8.32.2. Because the flaw lives in com.vaadin:flow-server, verify the transitive version as well - fixed flow-server builds are 2.13.8, 23.6.16, 24.4.19, 24.7.16, 24.9.29, 24.10.15, 25.1.19, 25.2.13 and 25.3.4 - since upgrading only the vaadin or vaadin-core aggregate may leave an older flow-server resolved. The fix disables Atmosphere's CorsInterceptor, so applications that deliberately embed Flow cross-origin must now configure CORS themselves; plan for that regression when upgrading. Where an immediate upgrade is not possible, note the two scope limits from the advisory: applications not using @Push are unaffected and the WebSocket push transport is unaffected, so pinning push to the WebSocket transport avoids the vulnerable HTTP path at the cost of losing long-polling fallback for clients that cannot use WebSocket. Vaadin 10-13 and 15-22 are unsupported and must be migrated to a current line. Details: https://vaadin.com/security/cve-2026-110737.

Affected VersionsENISA

framework 7.7.36 <7.7.55
Vaadin 24.6.0 ≤24.6.13
Vaadin 14.14.0 <14.14.8
Flow 24.9.0 <24.9.29
Flow 24.10.0 <24.10.15
Flow 25.0.0 ≤25.0.15
Vaadin 25.1.0 ≤25.1.13
Flow 25.3.0 <25.3.4
Vaadin 25.2.0 <25.2.11
Flow 24.5.0 ≤24.5.17
Vaadin 24.5.0 ≤24.5.15
Flow 24.6.0 ≤24.6.14
Vaadin 25.0.0 ≤25.0.13
Flow 24.4.0 <24.4.19
Flow 2.13.0 <2.13.8
Vaadin 24.8.0 ≤24.8.17
framework 7.1.0 <7.7.55
Vaadin 24.4.0 <24.4.26
Flow 25.2.0 <25.2.13
Vaadin 24.10.0 <24.10.12
Flow 25.1.0 <25.1.19
Flow 24.8.0 ≤24.8.16
Vaadin 24.9.0 <24.9.24
Flow 23.6.0 <23.6.16
Vaadin 25.3.0 <25.3.3
Vaadin 24.7.0 <24.7.17
framework 8.0.0 <8.32.2
Vaadin 23.6.0 <23.6.17
framework 8.18.0 <8.32.2
Flow 24.7.0 <24.7.16

Affected Packages

euvd flow fix: 2.13.8, 23.6.16, 24.4.19, 24.7.16, 24.9.29, 24.10.15, 25.1.19, 25.2.13, 25.3.4
euvd framework fix: 7.7.55, 8.32.2
euvd vaadin fix: 14.14.8, 23.6.17, 24.4.26, 24.7.17, 24.9.24, 24.10.12, 25.2.11, 25.3.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 packages in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Vaadin Flow implements server push on top of the Atmosphere framework. PushRequestHandler initializes Atmosphere, and in the vulnerable configuration it passed "false" for DROP_ACCESS_CONTROL_ALLOW_ORIGIN_HEADER, which left Atmosphere's CorsInterceptor active; that interceptor reflects whatever Origin header an incoming request carries into Access-Control-Allow-Origin and allows credentials. The result is CWE-942 (Permissive Cross-domain Policy with Untrusted Domains), scoped to the push endpoint rather than the whole application. The flaw was introduced in January 2015 when push was added (Vaadin Framework 7.1.0) and is present in every Flow release up to the fixed builds. The upstream fix in vaadin/flow PR #26215 simply flips that init parameter from "false" to "true", neutralizing Atmosphere's CorsInterceptor so that applications which intentionally embed Flow cross-origin must handle CORS themselves. Two carve-outs bound the issue technically: applications that do not use @Push never expose the endpoint, and the WebSocket push transport is explicitly not affected, so only the HTTP-based push transport (long-polling) participates in the flaw. The CVSS 4.0 vector AV:N/AC:H/PR:N/UI:P/VC:L with no integrity or availability impact, and the independent assessment's CVSS 3.1 vector AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N, both describe a limited-confidentiality, victim-interaction-dependent issue rather than a session takeover.

Know when Vaadin gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Vaadin) PRIMARY 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
vuln.today AI 3.1 LOW

Remote cross-origin attack (AV:N) but requires victim interaction (UI:R) and knowledge of the session push identifier (AC:H); only limited confidentiality impact (C:L) with no integrity or availability effect.

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (Vaadin).

CVSS VectorVendor: Vaadin

Attack Vector
Network
Attack Complexity
High
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 27, 2026 - 11:01 EUVD

DescriptionCVE.org

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 Maven coordinates / Vulnerable versions / Fixed version com.vaadin:vaadin / 14.14.0 - 14.14.7 / >=14.14.8 com.vaadin:vaadin / 23.6.0 - 23.6.16 / >=23.6.17 com.vaadin:vaadin / 24.4.0 - 24.4.25 / >=24.4.26 com.vaadin:vaadin / 24.5.0 - 24.5.15 / >=24.7.17 com.vaadin:vaadin / 24.6.0 - 24.6.13 / >=24.7.17 com.vaadin:vaadin / 24.7.0 - 24.7.16 / >=24.7.17 com.vaadin:vaadin / 24.8.0 - 24.8.17 / >=24.9.24 com.vaadin:vaadin / 24.9.0 - 24.9.23 / >=24.9.24 com.vaadin:vaadin / 24.10.0 - 24.10.11 / >=24.10.12 com.vaadin:vaadin / 25.0.0 - 25.0.13 / >=25.2.11 com.vaadin:vaadin / 25.1.0 - 25.1.13 / >=25.2.11 com.vaadin:vaadin / 25.2.0 - 25.2.10 / >=25.2.11 com.vaadin:vaadin / 25.3.0 - 25.3.2 / >=25.3.3 com.vaadin:vaadin-core / 14.14.0 - 14.14.7 / >=14.14.8 com.vaadin:vaadin-core / 23.6.0 - 23.6.16 / >=23.6.17 com.vaadin:vaadin-core / 24.4.0 - 24.4.25 / >=24.4.26 com.vaadin:vaadin-core / 24.5.0 - 24.5.15 / >=24.7.17 com.vaadin:vaadin-core / 24.6.0 - 24.6.13 / >=24.7.17 com.vaadin:vaadin-core / 24.7.0 - 24.7.16 / >=24.7.17 com.vaadin:vaadin-core / 24.8.0 - 24.8.17 / >=24.9.24 com.vaadin:vaadin-core / 24.9.0 - 24.9.23 / >=24.9.24 com.vaadin:vaadin-core / 24.10.0 - 24.10.11 / >=24.10.12 com.vaadin:vaadin-core / 25.0.0 - 25.0.13 / >=25.2.11 com.vaadin:vaadin-core / 25.1.0 - 25.1.13 / >=25.2.11 com.vaadin:vaadin-core / 25.2.0 - 25.2.10 / >=25.2.11 com.vaadin:vaadin-core / 25.3.0 - 25.3.2 / >=25.3.3 com.vaadin:flow-server / 2.13.0 - 2.13.7 / >=2.13.8 com.vaadin:flow-server / 23.6.0 - 23.6.15 / >=23.6.16 com.vaadin:flow-server / 24.4.0 - 24.4.18 / >=24.4.19 com.vaadin:flow-server / 24.5.0 - 24.5.17 / >=24.7.17 com.vaadin:flow-server / 24.6.0 - 24.6.14 / >=24.7.17 com.vaadin:flow-server / 24.7.0 - 24.7.15 / >=24.7.16 com.vaadin:flow-server / 24.8.0 - 24.8.16 / >=24.9.24 com.vaadin:flow-server / 24.9.0 - 24.9.28 / >=24.9.29 com.vaadin:flow-server / 24.10.0 - 24.10.14 / >=24.10.15 com.vaadin:flow-server / 25.0.0 - 25.0.15 / >=25.2.11 com.vaadin:flow-server / 25.1.0 - 25.1.18 / >=25.1.19 com.vaadin:flow-server / 25.2.0 - 25.2.12 / >=25.2.13 com.vaadin:flow-server / 25.3.0 - 25.3.3 / >=25.3.4 com.vaadin:vaadin-server / 7.1.0 - 7.7.54 / >=7.7.55 com.vaadin:vaadin-server / 8.0.0 - 8.32.1 / >=8.32.2 com.vaadin:vaadin-server-mpr-jakarta / 7.7.36 - 7.7.54 / >=7.7.55 com.vaadin:vaadin-server-mpr-jakarta / 8.18.0 - 8.32.1 / >=8.32.2

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Medium
well-known enterprise Java web framework, common but not everywhere
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

12
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +12
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Vaadin

View all
CVE-2021-33611 MEDIUM POC
6.1 Nov 02

Missing output sanitization in test sources in org.webjars.bowergithub.vaadin:vaadin-menu-bar versions 1.0.0 through 1.2

CVE-2026-110803 HIGH
8.7 Oct 21

Unauthenticated remote denial of service in Vaadin Framework 8 (com.vaadin:vaadin-server 8.16.0 through 8.32.1, and vaad

CVE-2026-107588 HIGH
8.4 Oct 21

Charts rendered by Vaadin Charts across Vaadin 22 through 25.3.0 bundle a pinned Highcharts release (9.2.2 in Vaadin 22-

CVE-2021-31411 HIGH
7.8 May 05

Insecure temporary directory usage in frontend build functionality of com.vaadin:flow-server versions 2.0.9 through 2.5.

CVE-2022-29567 HIGH
7.5 May 24

The default configuration of a TreeGrid component uses Object::toString as a key on the client-side and server communica

CVE-2021-31409 HIGH
7.5 May 06

Unsafe validation RegEx in EmailValidator component in com.vaadin:vaadin-compatibility-server versions 8.0.0 through 8.1

CVE-2021-31410 HIGH
7.5 Apr 23

Overly relaxed configuration of frontend resources server in Vaadin Designer versions 4.3.0 through 4.6.3 allows remote

CVE-2021-31407 HIGH
7.5 Apr 23

Vulnerability in OSGi integration in com.vaadin:flow-server versions 1.2.0 through 2.4.7 (Vaadin 12.0.0 through 14.4.9),

CVE-2021-31405 HIGH
7.5 Apr 23

Unsafe validation RegEx in EmailField component in com.vaadin:vaadin-text-field-flow versions 2.0.4 through 2.3.2 (Vaadi

CVE-2021-31408 HIGH
7.1 Apr 23

Authentication.logout() helper in com.vaadin:flow-client versions 5.0.0 prior to 6.0.0 (Vaadin 18), and 6.0.0 through 6.

CVE-2023-25499 MEDIUM
6.5 Jun 22

When adding non-visible components to the UI in server side, content is sent to the browser in Vaadin 10.0.0 through 10.

CVE-2026-91860 MEDIUM
6.3 Sep 30

Deep-merge prototype pollution in Vaadin Charts and Vaadin Component Base lets remote, unauthenticated attackers write a

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy