CVE-2021-31406 json
Timing side channel vulnerability in endpoint request handler in Vaadin 15-19
published 2021-04-19 5 y ago modified 2026-06-17 4 mo ago also GHSA-p7jq-v8jp-j424 , EUVD-2021-0850
- cvss
- 4.0
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 11%
- public exploits
- 0
- none known
Summary
Non-constant-time comparison of CSRF tokens in endpoint request handler in com.vaadin:flow-server versions 3.0.0 through 5.0.3 (Vaadin 15.0.0 through 18.0.6), and com.vaadin:fusion-endpoint version 6.0.0 (Vaadin 19.0.0) allows attacker to guess a security token for Fusion endpoints via timing attack.
Patch / fix
- maven com.vaadin:flow-server 5.0.4, 6.0.1
- vaadin flow 5.0.4
- vaadin vaadin 18.0.7
- github.com/vaadin/flow#10157 pull request
Exploit prediction
0.21% chance of exploitation in the next 30 days, higher than 11% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 4.0 | CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N |
| NVD | 3.1 | 2.5 | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N |
| NVD | 2.0 | 1.9 | AV:L/AC:M/Au:N/C:P/I:N/A:N |
| GitHub | 3.1 | 4.0 | CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| maven | com.vaadin:flow-server | >=3.0.0, <5.0.4 >=6.0.0, <6.0.1 |
5.0.4 6.0.1 |
Affected products
- Vaadin Vaadin
- Vaadin flow-server
Classification
References
-
github.com
/vaadin/flow/pull/10157
web, patch, third-party-advisory
-
vaadin.com
/security/cve-2021-31406
web, vendor-advisory
-
github.com
/vaadin/flow/security/advisories/GHSA-p7jq-v8jp-j424
web
-
nvd.nist.gov
/vuln/detail/CVE-2021-31406
advisory
Sources
- CVE List CVE-2021-31406
- GitHub Advisory GHSA-p7jq-v8jp-j424
- NVD CVE-2021-31406
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.