Session Lock Leak on an Invalid UI Id Allows Denial of Service in Vaadin Framework 8
Affects Vaadin Framework 8.16.0 through 8.32.1 when a request carries a non-numeric v-uiId parameter. Fixed in 8.32.2.
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- How many real-world setups can hit the bug, from the vendor's advisory and CISA data. It does not know your setup.What do these mean? →
- Unclear
- Fix
- Fixed in 8.32.2
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: partial
Summary
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
Timeline
- CVE published
- First seen by cve.now
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: partial
- Record last updated
Affected versions
- com.vaadin:vaadin-server
From 8.16.0 · fixed in 8.32.2
- com.vaadin:vaadin-server-mpr-jakarta
From 8.18.0 · fixed in 8.32.2
References 2
vaadin.com
GitHub · vaadin/framework
Questions about CVE-2026-110803
What does this mean?
A single request with a non-numeric v-uiId parameter leaves the session permanently locked. Repeated requests then exhaust the servlet container's thread pool, taking the application down.Source: vaadin.com
Am I affected, and how do I check?
Vaadin Framework 8 releases from 8.16.0 through 8.32.1 are in the affected range. Check the Vaadin Framework version in the project's dependencies to see whether it falls in that range.Source: vaadin.com
What should I do about it?
Upgrade to Vaadin Framework 8.32.2. The advisory's workaround until then is to override VaadinServlet.service() and answer 400 to requests whose v-uiId parameter is not an integer, before Vaadin handles them.Source: vaadin.com
Is it being exploited?
It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data