CVE-2021-31404
Java vulnerability analysis and mitigation

Overview

CVE-2021-31404 is a timing side channel vulnerability discovered in the UIDL request handler of Vaadin framework versions 10 through 18. The vulnerability was identified in the flow-server component, affecting versions from 1.0.0 through 5.0.2, and was disclosed on April 23, 2021. The issue stems from non-constant-time comparison of CSRF tokens in the request handler (Vaadin Security).

Technical details

The vulnerability is classified with a Medium severity rating and a CVSS v3.1 base score of 4.0 (CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N). The issue is categorized under CWE-208 (Observable Timing Discrepancy) and involves the non-constant-time comparison of security tokens used for CSRF protection, Push requests, and Upload request management (Vaadin Security).

Impact

The vulnerability could potentially allow attackers to guess security tokens through timing attacks. If successfully exploited, attackers could submit data on behalf of users without reading responses, or open websockets to listen for published data from the server. The exposed tokens could potentially lead to unauthorized access to sensitive information depending on the application's nature (Vaadin Security).

Mitigation and workarounds

The vulnerability has been fixed by implementing constant-time comparison for all security tokens. Users of affected versions are advised to upgrade to the following patched versions: Vaadin 10.0.0-10.0.16 should upgrade to 10.0.17 or newer, Vaadin 14.0.0-14.4.6 should upgrade to 14.4.7 or newer, and Vaadin 18.0.0-18.0.5 should upgrade to 18.0.6 or newer. Users of versions 11-13 and 15-17, which are no longer supported, should upgrade to either the latest 14 or 18 version respectively (Vaadin Security).

Community reactions

The vulnerability was discovered and responsibly reported by security researcher Xhelal Likaj. The fix was implemented through a pull request that introduced time-constant comparison for CSRF tokens, which was merged and subsequently cherry-picked to multiple versions of the framework (GitHub PR).

Additional resources


SourceThis report was generated using AI

Related Java vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2025-14306CRITICAL10
  • JavaJava
  • net.sf.robocode:robocode.core
NoYesDec 09, 2025
CVE-2025-14307CRITICAL9.3
  • JavaJava
  • net.sf.robocode:robocode.battle
NoYesDec 09, 2025
CVE-2025-66566HIGH8.2
  • JavaJava
  • at.yawk.lz4:lz4-java
NoYesDec 05, 2025
CVE-2025-66623HIGH7.4
  • JavaJava
  • io.strimzi:strimzi
NoYesDec 05, 2025
GHSA-93fv-4pm9-xp28MEDIUM6.9
  • JavaJava
  • net.dv8tion:jda
NoYesDec 09, 2025

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management