CVE-2026-110803

Session Lock Leak on an Invalid UI Id Allows Denial of Service in Vaadin Framework 8

Published Oct 21, 2026 CVSS 4.0 · 8.7 High EPSS < 1% KEV · Not listed
Description
VaadinService.requestEnd() in Vaadin Framework 8 locks the session and then reads the v-uiId request parameter outside the block that releases the lock. A request carrying a non-numeric v-uiId makes Integer.parseInt throw while the session lock is held, so the lock is never released and the container thread returns to its pool still owning it. Every later request to that session then blocks forever in VaadinService.lockSession(), and repeating the request exhausts the thread pool and takes the application down. No authentication is required: a session cookie, which any client obtains with a single request, is enough. Vaadin 10 and later are not affected, because Flow releases the lock in a finally block and does not read that parameter there, and Vaadin Framework 7 is not affected either.


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

Product version
Vaadin Framework 8.16.0 - 8.32.1

Mitigation
Upgrade to 8.32.2

Vaadin Framework 7 and Vaadin 10 and later do not carry this behaviour and need no upgrade for this issue.

Artifacts
Maven coordinates / Vulnerable versions / Fixed version
com.vaadin:vaadin-server / 8.16.0 - 8.32.1 / >=8.32.2
com.vaadin:vaadin-server-mpr-jakarta / 8.18.0 - 8.32.1 / >=8.32.2

Remediation

Vendor Solution

Users of affected versions should apply the following mitigation or upgrade.


Vendor Workaround

Reject requests whose v-uiId parameter is not an integer before Vaadin handles them, by overriding VaadinServlet.service() and answering 400 for those requests. Locks that have already leaked are only released by restarting the application.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Vaadin
Vaadin framework
Vendors & Products Vaadin
Vaadin framework
Type Values Removed Values Added
Description VaadinService.requestEnd() in Vaadin Framework 8 locks the session and then reads the v-uiId request parameter outside the block that releases the lock. A request carrying a non-numeric v-uiId makes Integer.parseInt throw while the session lock is held, so the lock is never released and the container thread returns to its pool still owning it. Every later request to that session then blocks forever in VaadinService.lockSession(), and repeating the request exhausts the thread pool and takes the application down. No authentication is required: a session cookie, which any client obtains with a single request, is enough. Vaadin 10 and later are not affected, because Flow releases the lock in a finally block and does not read that parameter there, and Vaadin Framework 7 is not affected either. Users of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include: Product version Vaadin Framework 8.16.0 - 8.32.1 Mitigation Upgrade to 8.32.2 Vaadin Framework 7 and Vaadin 10 and later do not carry this behaviour and need no upgrade for this issue. Artifacts Maven coordinates / Vulnerable versions / Fixed version com.vaadin:vaadin-server / 8.16.0 - 8.32.1 / >=8.32.2 com.vaadin:vaadin-server-mpr-jakarta / 8.18.0 - 8.32.1 / >=8.32.2
Title Session Lock Leak on an Invalid UI Id Allows Denial of Service in Vaadin Framework 8
Weaknesses CWE-400
CWE-667
References
Metrics cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
Vaadin
Published
Updated
Oct 30, 2026, 5:17 PM
Reserved
Oct 14, 2026, 5:48 PM
Status
Awaiting Analysis
Published
Oct 21, 2026, 7:16 PM
Modified
Oct 30, 2026, 6:17 PM