{"api_version":"1","generated_at":"2026-10-21T22:12:13+00:00","cve":"CVE-2026-110803","urls":{"html":"https://cve.report/CVE-2026-110803","api":"https://cve.report/api/cve/CVE-2026-110803.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-110803","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-110803"},"summary":{"title":"Session Lock Leak on an Invalid UI Id Allows Denial of Service in Vaadin Framework 8","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.\n\n\nUsers of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include:\n\nProduct version\nVaadin Framework 8.16.0 - 8.32.1\n\nMitigation\nUpgrade to 8.32.2\n\nVaadin Framework 7 and Vaadin 10 and later do not carry this behaviour and need no upgrade for this issue.\n\nArtifacts\nMaven coordinates / Vulnerable versions / Fixed version\ncom.vaadin:vaadin-server / 8.16.0 - 8.32.1 / >=8.32.2\ncom.vaadin:vaadin-server-mpr-jakarta / 8.18.0 - 8.32.1 / >=8.32.2","state":"PUBLISHED","assigner":"Vaadin","published_at":"2026-10-21 19:16:58","updated_at":"2026-10-21 19:16:58"},"problem_types":["CWE-400","CWE-667","CWE-667 CWE-667 Improper Locking","CWE-400 CWE-400 Uncontrolled Resource Consumption"],"metrics":[{"version":"4.0","source":"security@vaadin.com","type":"Secondary","score":"8.7","severity":"HIGH","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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","data":{"version":"4.0","vectorString":"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","baseScore":8.7,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"NONE","userInteraction":"NONE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","vulnAvailabilityImpact":"HIGH","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","exploitMaturity":"NOT_DEFINED","confidentialityRequirement":"NOT_DEFINED","integrityRequirement":"NOT_DEFINED","availabilityRequirement":"NOT_DEFINED","modifiedAttackVector":"NOT_DEFINED","modifiedAttackComplexity":"NOT_DEFINED","modifiedAttackRequirements":"NOT_DEFINED","modifiedPrivilegesRequired":"NOT_DEFINED","modifiedUserInteraction":"NOT_DEFINED","modifiedVulnConfidentialityImpact":"NOT_DEFINED","modifiedVulnIntegrityImpact":"NOT_DEFINED","modifiedVulnAvailabilityImpact":"NOT_DEFINED","modifiedSubConfidentialityImpact":"NOT_DEFINED","modifiedSubIntegrityImpact":"NOT_DEFINED","modifiedSubAvailabilityImpact":"NOT_DEFINED","Safety":"NOT_DEFINED","Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","valueDensity":"NOT_DEFINED","vulnerabilityResponseEffort":"NOT_DEFINED","providerUrgency":"NOT_DEFINED"}},{"version":"4.0","source":"CNA","type":"CVSS","score":"8.7","severity":"HIGH","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","data":{"Automatable":"YES","Recovery":"USER","Safety":"NEGLIGIBLE","attackComplexity":"LOW","attackRequirements":"NONE","attackVector":"NETWORK","baseScore":8.7,"baseSeverity":"HIGH","privilegesRequired":"NONE","providerUrgency":"CLEAR","subAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","userInteraction":"NONE","valueDensity":"DIFFUSE","vectorString":"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","version":"4.0","vulnAvailabilityImpact":"HIGH","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","vulnerabilityResponseEffort":"LOW"}}],"references":[{"url":"https://github.com/vaadin/framework/releases/tag/8.32.2","name":"https://github.com/vaadin/framework/releases/tag/8.32.2","refsource":"security@vaadin.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://vaadin.com/security/cve-2026-110803","name":"https://vaadin.com/security/cve-2026-110803","refsource":"security@vaadin.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-110803","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-110803","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"vaadin","product":"framework","version":"affected 8.16.0 8.32.2 maven","platforms":[]},{"source":"CNA","vendor":"vaadin","product":"framework","version":"affected 8.18.0 8.32.2 maven","platforms":[]}],"timeline":[],"solutions":[{"source":"CNA","title":"","value":"Users of affected versions should apply the following mitigation or upgrade.","time":"","lang":"en"}],"workarounds":[{"source":"CNA","title":"","value":"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.","time":"","lang":"en"}],"exploits":[],"credits":[{"source":"CNA","value":"Michal Legocki, Finago","lang":"en"}],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"collectionURL":"https://repo.maven.apache.org/maven2","defaultStatus":"unaffected","packageName":"com.vaadin:vaadin-server","product":"framework","repo":"https://github.com/vaadin/framework","vendor":"vaadin","versions":[{"lessThan":"8.32.2","status":"affected","version":"8.16.0","versionType":"maven"}]},{"collectionURL":"https://repo.maven.apache.org/maven2","defaultStatus":"unaffected","packageName":"com.vaadin:vaadin-server-mpr-jakarta","product":"framework","repo":"https://github.com/vaadin/framework","vendor":"vaadin","versions":[{"lessThan":"8.32.2","status":"affected","version":"8.18.0","versionType":"maven"}]}],"credits":[{"lang":"en","type":"finder","value":"Michal Legocki, Finago"}],"descriptions":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"<span style=\"background-color: rgba(232, 232, 232, 0.04);\">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.<br><br><br>Users of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include:<br><br>Product version<br>Vaadin Framework 8.16.0 - 8.32.1<br><br>Mitigation<br>Upgrade to 8.32.2<br><br>Vaadin Framework 7 and Vaadin 10 and later do not carry this behaviour and need no upgrade for this issue.<br><br>Artifacts<table><tbody><tr><td>Maven coordinates</td><td>Vulnerable versions</td><td>Fixed version</td></tr><tr><td>com.vaadin:vaadin-server<br></td><td>8.16.0 - 8.32.1<br></td><td>&ge;8.32.2<br></td></tr><tr><td>com.vaadin:vaadin-server-mpr-jakarta<br></td><td>8.18.0 - 8.32.1<br></td><td>&ge;8.32.2<br></td></tr></tbody></table></span>"}],"value":"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.\n\n\nUsers of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include:\n\nProduct version\nVaadin Framework 8.16.0 - 8.32.1\n\nMitigation\nUpgrade to 8.32.2\n\nVaadin Framework 7 and Vaadin 10 and later do not carry this behaviour and need no upgrade for this issue.\n\nArtifacts\nMaven coordinates / Vulnerable versions / Fixed version\ncom.vaadin:vaadin-server / 8.16.0 - 8.32.1 / >=8.32.2\ncom.vaadin:vaadin-server-mpr-jakarta / 8.18.0 - 8.32.1 / >=8.32.2"}],"impacts":[{"capecId":"CAPEC-25","descriptions":[{"lang":"en","value":"CAPEC-25 Forced Deadlock"}]}],"metrics":[{"cvssV4_0":{"Automatable":"YES","Recovery":"USER","Safety":"NEGLIGIBLE","attackComplexity":"LOW","attackRequirements":"NONE","attackVector":"NETWORK","baseScore":8.7,"baseSeverity":"HIGH","privilegesRequired":"NONE","providerUrgency":"CLEAR","subAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","userInteraction":"NONE","valueDensity":"DIFFUSE","vectorString":"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","version":"4.0","vulnAvailabilityImpact":"HIGH","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","vulnerabilityResponseEffort":"LOW"},"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-667","description":"CWE-667 Improper Locking","lang":"en","type":"CWE"},{"cweId":"CWE-400","description":"CWE-400 Uncontrolled Resource Consumption","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-10-21T18:22:59.789Z","orgId":"9e0f3122-90e9-42d5-93de-8c6b98deef7e","shortName":"Vaadin"},"references":[{"url":"https://vaadin.com/security/cve-2026-110803"},{"url":"https://github.com/vaadin/framework/releases/tag/8.32.2"}],"solutions":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"<b><span style=\"background-color: transparent;\">Users of affected versions should apply the following mitigation or upgrade.</span></b><br>"}],"value":"Users of affected versions should apply the following mitigation or upgrade."}],"source":{"discovery":"UNKNOWN"},"title":"Session Lock Leak on an Invalid UI Id Allows Denial of Service in Vaadin Framework 8","workarounds":[{"lang":"en","value":"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."}],"x_generator":{"engine":"Vulnogram 0.5.0"}}},"cveMetadata":{"assignerOrgId":"9e0f3122-90e9-42d5-93de-8c6b98deef7e","assignerShortName":"Vaadin","cveId":"CVE-2026-110803","datePublished":"2026-10-21T18:22:59.789Z","dateReserved":"2026-10-14T17:48:34.531Z","dateUpdated":"2026-10-21T18:22:59.789Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-21 19:16:58","lastModifiedDate":"2026-10-21 19:16:58","problem_types":["CWE-400","CWE-667","CWE-667 CWE-667 Improper Locking","CWE-400 CWE-400 Uncontrolled Resource Consumption"],"metrics":{"cvssMetricV40":[{"source":"security@vaadin.com","type":"Secondary","cvssData":{"version":"4.0","vectorString":"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","baseScore":8.7,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"NONE","userInteraction":"NONE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","vulnAvailabilityImpact":"HIGH","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","exploitMaturity":"NOT_DEFINED","confidentialityRequirement":"NOT_DEFINED","integrityRequirement":"NOT_DEFINED","availabilityRequirement":"NOT_DEFINED","modifiedAttackVector":"NOT_DEFINED","modifiedAttackComplexity":"NOT_DEFINED","modifiedAttackRequirements":"NOT_DEFINED","modifiedPrivilegesRequired":"NOT_DEFINED","modifiedUserInteraction":"NOT_DEFINED","modifiedVulnConfidentialityImpact":"NOT_DEFINED","modifiedVulnIntegrityImpact":"NOT_DEFINED","modifiedVulnAvailabilityImpact":"NOT_DEFINED","modifiedSubConfidentialityImpact":"NOT_DEFINED","modifiedSubIntegrityImpact":"NOT_DEFINED","modifiedSubAvailabilityImpact":"NOT_DEFINED","Safety":"NOT_DEFINED","Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","valueDensity":"NOT_DEFINED","vulnerabilityResponseEffort":"NOT_DEFINED","providerUrgency":"NOT_DEFINED"}}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"110803","Ordinal":"1","Title":"Session Lock Leak on an Invalid UI Id Allows Denial of Service i","CVE":"CVE-2026-110803","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"110803","Ordinal":"1","NoteData":"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.\n\n\nUsers of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include:\n\nProduct version\nVaadin Framework 8.16.0 - 8.32.1\n\nMitigation\nUpgrade to 8.32.2\n\nVaadin Framework 7 and Vaadin 10 and later do not carry this behaviour and need no upgrade for this issue.\n\nArtifacts\nMaven coordinates / Vulnerable versions / Fixed version\ncom.vaadin:vaadin-server / 8.16.0 - 8.32.1 / >=8.32.2\ncom.vaadin:vaadin-server-mpr-jakarta / 8.18.0 - 8.32.1 / >=8.32.2","Type":"Description","Title":"Session Lock Leak on an Invalid UI Id Allows Denial of Service i"}]}}}