Security advisory
Vert.x-Web framework v4.0 milestone 1-4 does not perform a correct CSRF verification. Instead of comparing the CSRF token in the request with the CSRF token in the cookie, it compares the CSRF token in the cookie against a CSRF token that is stored in the session. An attacker does not even need to provide a CSRF token in the request because the framework does not consider it. The cookies are automatically sent by the browser and the verification will always succeed, leading to a successful CSRF attack.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2020-35217
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 31 Oct 2026, 11:12 UTC · Revision 1
Source evidence
Vert.x-Web framework v4.0 milestone 1-4 does not perform a correct CSRF verification. Instead of comparing the CSRF token in the request with the CSRF token in the cookie, it compares the CSRF token in the cookie against a CSRF token that is stored in the session. An attacker does not even need to provide a CSRF token in the request because the framework does not consider it. The cookies are automatically sent by the browser and the verification will always succeed, leading to a successful CSRF attack.
osv:CVE-2020-35217
Complete source record
{
"id": "48e7c38569bade5c605c229b5c95fca72bb07f2699e06c51563b25b99372d325",
"url": "https://osv.dev/vulnerability/CVE-2020-35217",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "CVE-2020-35217",
"summary": "Vert.x-Web framework v4.0 milestone 1-4 does not perform a correct CSRF verification. Instead of comparing the CSRF token in the request with the CSRF token in the cookie, it compares the CSRF token in the cookie against a CSRF token that is stored in the session. An attacker does not even need to provide a CSRF token in the request because the framework does not consider it. The cookies are automatically sent by the browser and the verification will always succeed, leading to a successful CSRF attack.",
"evidence": "osv:CVE-2020-35217",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2020-35217",
"aliases": [
"CVE-2020-35217",
"GHSA-9q69-g5gc-9fgf"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/vert-x3/vertx-web",
"type": "GIT",
"events": [
{
"introduced": "1d18809825e4280ab2e5302d6409783bea04f3b3"
},
{
"last_affected": "1d0a62d5d571d45b2b6165b083d0da90b9207481"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:eclipse:vert.x-web:4.0.0:milestone1:*:*:*:*:*:*",
"range": [
{
"introduced": "4.0.0-milestone1"
},
{
"last_affected": "4.0.0-milestone1"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:eclipse:vert.x-web:4.0.0:milestone2:*:*:*:*:*:*",
"range": [
{
"introduced": "4.0.0-milestone2"
},
{
"last_affected": "4.0.0-milestone2"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:eclipse:vert.x-web:4.0.0:milestone3:*:*:*:*:*:*",
"range": [
{
"introduced": "4.0.0-milestone3"
},
{
"last_affected": "4.0.0-milestone3"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:eclipse:vert.x-web:4.0.0:milestone4:*:*:*:*:*:*",
"range": [
{
"introduced": "4.0.0-milestone4"
},
{
"last_affected": "4.0.0-milestone4"
}
],
"source": "CPE_STRING"
}
]
}
}
],
"versions": [
"4.0.0-milestone1",
"4.0.0-milestone2",
"4.0.0-milestone3",
"4.0.0-milestone4"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2020-35217.json"
}
}
],
"modified": "2026-10-20T10:53:18.277368986Z",
"provider": "osv",
"references": [
"https://github.com/vert-x3/vertx-web/pull/1613"
],
"provider_metadata": {}
},
"related_cves": [
{
"value": "CVE-2020-35217",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 384261,
"published_at": "2021-01-20T13:15:12.44+00:00"
}