In this scenario, libcurl first uses a proper HTTP/3 server for the initial transfers, and when it makes a second transfer to the same site it has been replaced by the attacker's impostor machine - without a valid certificate.
When libcurl returns to the hostname the second time with a cached SSL session
(CURLOPT_SSL_SESSIONID_CACHE is not disabled) and early data enabled (the
CURLSSLOPT_EARLYDATA bit is set in CURLOPT_SSL_OPTIONS), libcurl might
send off the second request's bytes on that new connection before enforcing
the certificate verification failure. Potentially leaking sensitive
information.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/9xxx/CVE-2026-9545.json",
"unresolved_ranges": [
{
"source": "AFFECTED_FIELD",
"extracted_events": [
{
"introduced": "8.20.0"
},
{
"last_affected": "8.20.0"
},
{
"introduced": "8.19.0"
},
{
"last_affected": "8.19.0"
},
{
"introduced": "8.18.0"
},
{
"last_affected": "8.18.0"
},
{
"introduced": "8.17.0"
},
{
"last_affected": "8.17.0"
},
{
"introduced": "8.16.0"
},
{
"last_affected": "8.16.0"
},
{
"introduced": "8.15.0"
},
{
"last_affected": "8.15.0"
},
{
"introduced": "8.14.1"
},
{
"last_affected": "8.14.1"
},
{
"introduced": "8.14.0"
},
{
"last_affected": "8.14.0"
},
{
"introduced": "8.13.0"
},
{
"last_affected": "8.13.0"
},
{
"introduced": "8.12.1"
},
{
"last_affected": "8.12.1"
},
{
"introduced": "8.12.0"
},
{
"last_affected": "8.12.0"
},
{
"introduced": "8.11.1"
},
{
"last_affected": "8.11.1"
},
{
"introduced": "8.11.0"
},
{
"last_affected": "8.11.0"
}
]
}
],
"cna_assigner": "curl"
}