Skip to main content

Vaadin Flow EUVDEUVD-2026-30891

| CVE-2026-7860 LOW
Error Message Information Leak (CWE-209)
2026-05-19 Vaadin GHSA-j8mx-j73w-9mxw
1.6
CVSS 4.0 · Vendor: Vaadin
View

Attack ChainAIDerived

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

  1. Access
    Attacker acquires low-privilege CI system access
  2. Delivery
    Triggers or awaits frontend build failure (non-zero exit)
  3. Exploit
    Affected plugin dumps full environment to build log
  4. Execution
    Attacker reads plaintext secrets from log or build artifact
  5. Impact
    Harvested credentials used to compromise downstream systems

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Error message sanitization
MITRE ATT&CK

1 technique across 1 tactic: Discovery

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

All of the following conditions must be simultaneously true for exploitation: (1) the target project must use an affected Vaadin Flow Maven or Gradle plugin version (23.0.0-23.6.9, 24.0.0-24.10.3, or 25.0.0-25.1.4); (2) the CI/CD build environment must inject sensitive credentials as process-level environment variables - this is common but not universal; (3) a frontend build must actually exit with a non-zero status code during a CI run, meaning a build failure must be triggered; and (4) the attacker must have read access to the resulting CI build logs or archived build artifacts, requiring at minimum low-privilege access to the CI/CD system (PR:L). The CVSS AT:P (Partial attack target) metric further qualifies that not every instance meeting these conditions will necessarily expose sensitive secrets - some environments may not inject credentials as env vars at all. The PR:N unauthenticated attack vector does NOT apply here; the CVSS vector confirms PR:L. Exploitation is not automatable (AU:N). Exploitation is limited to the local CI/CD system boundary (AV:L) and requires a build failure event to occur.

Impact

The CVSS 4.0 composite score of 1.6 is misleadingly low relative to the potential blast radius. The low score is driven by restrictive attack conditions: local access to CI infrastructure (AV:L), high attack complexity (AC:H), partial attack target (AT:P), low privileges required (PR:L), and passive user interaction (UI:P). However, the confidentiality and integrity impact on subsequent systems is rated High (SC:H/SI:H), reflecting that leaked credentials can cascade into supply chain compromise of downstream environments. EPSS data was not provided in the available inputs and cannot be inferred. The vulnerability is not in CISA KEV, and exploitation is rated Unreported (E:U) in the CVSS 4.0 supplemental metrics. SSVC automatable is No (AU:N), indicating this does not lend itself to mass automated exploitation. The CVSS urgency rating is Green (U:Green) with low remediation effort (RE:L). Despite the low score, organizations injecting secrets as environment variables in CI pipelines should treat this as a meaningful supply chain risk - the gap between CVSS score and realistic downstream impact is a known limitation of scoring credential-leakage vulnerabilities.

Exploit ScenarioDerived

A developer triggers a Vaadin frontend build in a CI pipeline where secrets (for example, a container registry password or a cloud provider API key) are injected as environment variables. The frontend build fails - due to a transient npm registry timeout or a dependency resolution error - causing the affected plugin to write the full process environment, including all injected secrets, to the CI job log. An attacker or malicious insider with read access to that CI system retrieves the plaintext credentials from the log, then uses them to push malicious container images or access cloud resources, achieving supply chain compromise.

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

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

Alert me

AnalysisAIv1 – May 19, 2026

Vaadin Flow's Maven and Gradle build plugins expose all process-level environment variables - including CI-injected secrets and credentials - in plaintext build logs whenever the frontend build process exits with a non-zero status code. Affected are com.vaadin:flow-maven-plugin, flow-gradle-plugin, and flow-plugin-base across Vaadin 23.0.0-23.6.9, 24.0.0-24.10.3, and 25.0.0-25.1.4. No public exploit code exists and this is not listed in CISA KEV; however, any actor with read access to CI build logs from a failed frontend build can extract plaintext registry credentials, deploy tokens, or signing keys, enabling downstream supply chain compromise consistent with the CVSS SC:H/SI:H subsequent-system impact ratings.

RemediationAI

The primary fix is to upgrade to a patched Vaadin release. For the 24.x branch, upgrade to com.vaadin:flow-maven-plugin and flow-plugin-base version 24.10.4 or newer; for the 25.x branch, upgrade to 25.1.5 or newer. For the 23.x branch, note a discrepancy in the vendor advisory: the mitigation text states 'Upgrade to 23.6.10' while the artifact version table lists 23.6.10 as still vulnerable and ≥23.6.11 as fixed - verify the exact artifact version against the vendor advisory at https://vaadin.com/security/cve-2026-7860 before upgrading in the 23.x stream. The upstream code change (GitHub PR #24219) removes the zt-exec dependency and replaces ProcessExecutor with native Java process handling that does not dump environment state on failure. As an immediate compensating control where upgrading is not yet possible, rotate any secrets that may have been written to CI build logs (API keys, container registry passwords, deploy tokens, code-signing keys) - rotation removes attacker utility from already-leaked values without requiring a build change. Additionally, restrict CI log and artifact access to only authorized personnel, and audit existing archived build artifacts for exposed secrets using tools such as truffleHog or gitleaks. Restricting log access is not a fix for future exposures - only the patch eliminates the root cause.

Affected VersionsENISA

Flow 24.0.0 ≤24.10.3
Flow 23.0.0 ≤23.6.10
Flow 25.0.0 ≤25.1.4

Affected Packages

maven com.vaadin:flow-gradle-plugin fix: 24.9.18, 24.10.4, 25.0.12, 25.1.5
maven com.vaadin:flow-maven-plugin fix: 23.6.11, 24.9.18, 24.10.4, 25.0.12, 25.1.5
maven com.vaadin:flow-plugins fix: 23.6.11, 24.9.18, 24.10.4, 25.0.12, 25.1.5
euvd flow no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 4 packages in maven, euvd

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

Technical ContextAI · show details

The root cause is CWE-209 (Generation of Error Message Containing Sensitive Information). The affected plugins previously used the third-party library org.zeroturnaround:zt-exec (ProcessExecutor) to invoke frontend build toolchains such as npm and Vite. When ProcessExecutor's command invocation returned a non-zero exit code, the exception-handling path in BuildFrontendUtil.java logged the full ProcessBuilder environment - the complete map of OS-level environment variables - to build output. CI/CD pipelines (GitHub Actions, Jenkins, GitLab CI) routinely inject sensitive credentials as environment variables, making any failed frontend build a potential credential dump. The GitHub PR #24219 fix removes the zt-exec dependency entirely from flow-plugin-base and flow-maven-plugin, replacing ProcessExecutor with a custom Java-native ProcessBuilder and BufferedReader implementation that does not expose environment state on failure. CPE cpe:2.3:a:vaadin:flow:*:*:*:*:*:*:*:* covers all affected Vaadin Flow versions across the 23.x, 24.x, and 25.x release branches.

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 1.6 LOW
CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:P/VC:H/VI:N/VA:N/SC:H/SI:H/SA:N/E:U/S:N/AU:N/R:A/V:C/RE:L/U:Green

Primary rating from Vendor (Vaadin) · only source for this CVE.

CVSS VectorVendor: Vaadin

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

DescriptionCVE.org

A possible information disclosure vulnerability exists in the Vaadin Maven plugin and Vaadin Gradle plugin that exposes the full set of environment variables in build logs whenever the frontend build process exits with a non-zero status. Because the build environment may contain credentials supplied as secrets, any failed frontend build can expose those secrets in clear text in CI logs and archived build artifacts.

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

Product version Vaadin 23.0.0 - 23.6.9 Vaadin 24.0.0 - 24.10.3 Vaadin 25.0.0 - 25.1.4

Mitigation Upgrade to 23.6.10 Upgrade to 24.10.4 or newer Upgrade to 25.1.5 or newer

Please note that Vaadin versions 10-13 and 15-22 are no longer supported and you should update either to the latest 23, 24, or 25 version.

ArtifactsMaven coordinatesVulnerable versionsFixed versioncom.vaadin:flow-plugin-base23.0.0 - 23.6.10≥23.6.11com.vaadin:flow-plugin-base24.0.0 - 24.10.3≥24.10.4com.vaadin:flow-plugin-base25.0.0 - 25.1.4≥25.1.5com.vaadin:flow-maven-plugin23.0.0 - 23.6.10≥23.6.11com.vaadin:flow-maven-plugin24.0.0 - 24.10.3≥24.10.4com.vaadin:flow-maven-plugin25.0.0 - 25.1.4≥25.1.5com.vaadin:flow-gradle-plugin24.0.0 - 24.10.3≥24.10.4com.vaadin:flow-gradle-plugin25.0.0 - 25.1.4≥25.1.5

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 2 maven packages depend on com.vaadin:flow-gradle-plugin (1 direct, 1 indirect)
  • 2 maven packages depend on com.vaadin:flow-maven-plugin (2 direct, 0 indirect)

Ecosystem-wide dependent count for version 24.0.0 and other introduced versions.

Threat Intelligence Overview

EPSS Score
0.0%
Top 97% exploitable
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.0%
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
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

8
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +8
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