Skip to main content

Vaadin Spreadsheet EUVDEUVD-2026-89952

| CVE-2026-93547 MEDIUM
Improper Authorization (CWE-285)
2026-09-30 Vaadin GHSA-74m8-whmf-rxrq
5.3
CVSS 4.0 · Vendor: Vaadin
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to Vaadin spreadsheet app
  2. Delivery
    Target protection-enabled sheet
  3. Exploit
    Send crafted updateCellComment RPC
  4. Execution
    Bypass locked-cell authorization check
  5. Persist
    Write/replace comment or create cell
  6. Impact
    Tamper with protected sheet data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization verification
MITRE ATT&CK

1 technique across 1 tactic: Defense Evasion

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

Exploitation Conditions

Exploitation requires: (1) an application built on an affected Vaadin/Vaadin-Spreadsheet version that actually renders a spreadsheet component to users; (2) the target sheet must have sheet protection enabled (the flaw is the failure to enforce that protection for the comment-write path); and (3) a valid authenticated session with the application (PR:L) - this is not remote-unauthenticated. There is no user-interaction requirement and complexity is low, but impact is confined to cell-comment integrity and phantom row/cell creation; no confidentiality or availability impact. Deployments that do not use the Spreadsheet component, do not enable sheet protection, or restrict spreadsheet access to trusted authenticated users face little practical risk.

Impact

This is a genuinely low-risk authorization flaw, and the multiple signals are consistent rather than conflicting. The vendor-assigned CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) requires an authenticated user (PR:L) and yields only a low integrity impact (VI:L) with no confidentiality (VC:N) or availability (VA:N) effect, giving a base score of 5.3 - which correctly reflects a limited-impact issue rather than a critical one. No EPSS score, no CISA KEV listing, and no public exploit code were provided; the GitHub links are the vendor's own fix pull requests (patch/test diffs), NOT weaponized proof-of-concept exploits, so they should not be read as evidence of exploitability in the wild. The realistic ceiling of this bug is that an already-authenticated application user can tamper with cell comments on a 'protected' sheet and cause phantom row/cell creation - a data-integrity nuisance, not data theft or code execution. This is a low-priority, patch-in-normal-cycle issue: the CVSS-to-real-risk relationship is honest here, with no inflation. The only mild caveat is that the tag labels this 'Authentication Bypass' when it is actually broken authorization (CWE-285) - no authentication step is defeated; a legitimately authenticated user simply exceeds their intended write permissions on protected cells.

Exploit ScenarioDerived

An authenticated user of a Vaadin application that renders a spreadsheet with sheet protection enabled crafts or replays the client-side 'updateCellComment' RPC event targeting a locked cell (or an empty cell). The server-side handler applies the comment without checking the cell's locked/editable state, so the attacker adds or overwrites comments on protected cells and can even materialize new rows/cells that did not previously exist. No public exploit code is available; the referenced GitHub pull requests are the vendor's remediation, and exploitation requires an authenticated session (PR:L) but no user interaction or special complexity.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.5% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 30, 2026

The Vaadin Spreadsheet component fails to enforce sheet protection when writing cell comments, so any authenticated user of an application that renders a spreadsheet can insert or overwrite comments on a protected sheet - including on cells that are explicitly locked - and can write a comment to a cell that does not yet exist, which creates the underlying row and cell. Only logged-in users of the host application are affected (CVSS v4.0 base 5.3; independent assessment CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N), and the impact is confined to spreadsheet integrity: no confidentiality or availability impact, no user interaction, and low attack complexity. Exploitation requires the Spreadsheet component to actually be rendered, sheet protection to be enabled, and a valid session; no public exploit code or CISA KEV entry is identified at time of analysis. Fixed releases (Vaadin 23.6.14, 24.9.22, 24.10.10, 25.1.12, 25.2.7 and Spreadsheet add-on 3.1.1) are available per the vendor advisory.

RemediationAI

Upgrade to the vendor-released fixed versions: Vaadin 23.6.14, 24.9.22, 24.10.10, 25.1.12 or 25.2.7 (or newer), updating both com.vaadin:vaadin and com.vaadin:vaadin-spreadsheet-flow, and upgrade the Spreadsheet add-on to 3.1.1 for Vaadin Framework 7/8 deployments; users on unsupported Vaadin 10-13 and 15-22 must move to the latest 23/24/25 line. The patches are published as upstream PRs referenced by the advisory (flow-components PRs 9905, 9906, 9907, 9908, 9909, 9910 and 9956; vaadin/spreadsheet PR 866) - see https://vaadin.com/security/cve-2026-93547 for the full artifact matrix. Where upgrading is not immediately possible, the practical compensating controls are: do not expose spreadsheet views to untrusted authenticated users (restrict the view to trusted roles), and where the application does not need user-entered comments, keep comment editing disabled or remove the comment capability in the host application - this prevents the affected event path from being reached at the cost of losing comment functionality. A code-level workaround is to subclass the spreadsheet component and override the comment handler in SpreadsheetHandlerImpl (the fix exposes getSpreadsheetHandler() for this purpose) to reject writes to locked cells; this requires custom code and maintenance against the RPC handler, and any bypass of that check reintroduces the flaw. Because impact is limited to comment/row integrity with no data disclosure or denial of service, patching can be scheduled on a normal cadence rather than treated as an emergency.

Affected VersionsENISA

Vaadin 24.10.0 <24.10.10
vaadin-spreadsheet-flow 24.10.0 <24.10.10
Vaadin 23.1.0 <23.6.14
Vaadin 25.0.0 <25.1.12
vaadin-spreadsheet-flow 23.1.0 <23.6.14
vaadin-spreadsheet-flow 25.2.0 <25.2.7
Vaadin 25.2.0 <25.2.7
vaadin-spreadsheet-flow 25.0.0 <25.1.12
vaadin-spreadsheet 2.0.0 <3.1.1
vaadin-spreadsheet-flow 24.0.0 <24.9.22
Vaadin 24.0.0 <24.9.22

Affected Packages

euvd vaadin fix: 23.6.14, 24.9.22, 24.10.10, 25.1.12, 25.2.7
euvd vaadin_spreadsheet fix: 3.1.1
euvd vaadin_spreadsheet_flow fix: 23.6.14, 24.9.22, 24.10.10, 25.1.12, 25.2.7

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

The flaw is CWE-285 (Improper Authorization): the comment-write path of the spreadsheet component omitted the locked-cell guard that other edit paths already applied. In affected builds the client-side 'updateCellComment' event was handled without consulting the cell's protected/locked state, whereas operations such as paste and clear-on-cut in SpreadsheetHandlerImpl already checked isCellLocked(). The upstream fixes add an isCellEditable(Cell) helper that returns true when the active sheet is unprotected, false for a null (non-existent) cell, and otherwise honours the cell's CellStyle.getLocked() flag together with row-level and column-level CellStyle locked flags resolved from the sheet's style index 0 default, and each write path now calls protectedCellWriteAttempted() and returns instead of proceeding. The affected technology stack is Apache POI-backed Excel (.xlsx) rendering exposed through Vaadin Flow server-side components and the legacy Vaadin Framework 7/8 Spreadsheet add-on; CPE data confirms three affected artifacts - vaadin:vaadin, vaadin:vaadin-spreadsheet-flow and vaadin:vaadin-spreadsheet. The named remediation references are Vaadin PRs 9905-9910 and 9956 in vaadin/flow-components plus PR 866 in vaadin/spreadsheet, and the vendor advisory at https://vaadin.com/security/cve-2026-93547.

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 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Authenticated app user (PR:L) over the network with no interaction bypasses a locked-cell write check; impact is limited comment/data tampering (I:L) with no confidentiality or availability effect.

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

Primary rating from Vendor (Vaadin).

CVSS VectorVendor: Vaadin

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

Lifecycle Timeline

1
Patch available
Sep 30, 2026 - 14:01 EUVD

DescriptionCVE.org

A missing authorization check in the Vaadin Spreadsheet component allows an authenticated user of an application that renders a spreadsheet to add or replace cell comments on a sheet that has protection enabled, including on cells that are locked. Writing a comment to a cell that does not exist yet also creates the row and the cell.

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

Product version Vaadin 23.1.0 - 23.6.13 Vaadin 24.0.0 - 24.9.21 Vaadin 24.10.0 - 24.10.9 Vaadin 25.0.0 - 25.1.11 Vaadin 25.2.0 - 25.2.6 Vaadin Framework 7 and 8 with the Spreadsheet add-on 2.0.0 - 3.1.0

Mitigation Upgrade to 23.6.14 Upgrade to 24.9.22 Upgrade to 24.10.10 Upgrade to 25.1.12 Upgrade to 25.2.7 or newer Upgrade the Spreadsheet add-on to 3.1.1

Please 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.

Artifacts Maven coordinates Vulnerable versions Fixed version com.vaadin:vaadin 23.1.0 - 23.6.13 >=23.6.14 com.vaadin:vaadin 24.0.0 - 24.9.21 >=24.9.22 com.vaadin:vaadin 24.10.0 - 24.10.9 >=24.10.10 com.vaadin:vaadin 25.0.0 - 25.1.11 >=25.1.12 com.vaadin:vaadin 25.2.0 - 25.2.6 >=25.2.7 com.vaadin:vaadin-spreadsheet-flow 23.1.0 - 23.6.13 >=23.6.14 com.vaadin:vaadin-spreadsheet-flow 24.0.0 - 24.9.21 >=24.9.22 com.vaadin:vaadin-spreadsheet-flow 24.10.0 - 24.10.9 >=24.10.10 com.vaadin:vaadin-spreadsheet-flow 25.0.0 - 25.1.11 >=25.1.12 com.vaadin:vaadin-spreadsheet-flow 25.2.0 - 25.2.6 >=25.2.7 com.vaadin:vaadin-spreadsheet 2.0.0 - 3.1.0 >=3.1.1

Threat Intelligence Overview

EPSS Score
0.5%
Top 60% exploitable
Prevalence
Medium
Vaadin is a common enterprise Java UI framework; Spreadsheet is a narrower commercial add-on
Data Quality
5 sources
Confidence: Medium
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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-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

CVE-2026-2742 MEDIUM
5.3 Mar 10

Authentication bypass in Vaadin framework (14.0.0-14.14.0, 23.0.0-23.6.x, and other ranges). The web application framewo

CVE-2021-31412 MEDIUM
5.3 Jun 24

Improper sanitization of path in default RouteNotFoundError view in com.vaadin:flow-server versions 1.0.0 through 1.0.14

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