CVE-2021-31406: Timing side channel vulnerability in endpoint request handler in Vaadin 15-19
4
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.16933%
CWE
Published
4/19/2021
Updated
2/1/2023
KEV Status
No
Technology
Java
Technical Details
CVSS Vector
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
com.vaadin:flow-server | maven | >= 3.0.0, < 5.0.4 | 5.0.4 |
com.vaadin:flow-server | maven | = 6.0.0 | 6.0.1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from non-constant-time comparisons of security tokens using String.equals()
. All four functions
were explicitly modified across multiple commits to replace equals()
with MessageDigest.isEqual()
, as shown in the patch diffs. These functions
directly handle security-critical token comparisons (CSRF tokens, push IDs, upload security keys) and their pre-patch implementations would appear in runtime profiles during token validation when an attacker sends malicious requests. The confidence is high because the patch evidence directly shows insecure comparisons being replaced with constant-time equivalents in security-sensitive contexts.