When performing transfers via libcurl’s multi interface, pooled TLS connections can outlive their originating easy handles. In OpenSSL 3 provider configurations, libcurl attaches an allocated library context to the easy handle's state and passes it to OpenSSL without acquiring an ownership reference; destroying the easy handle prematurely frees this context while the active connection retains a dangling pointer, leading to a heap-use-after-free upon subsequent I/O or post-handshake operations.
{
"cna_assigner": "curl",
"cwe_ids": [
"CWE-416"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/80xxx/CVE-2026-80229.json"
}{
"extracted_events": [
{
"cpe": "cpe:2.3:a:haxx:curl:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "8.14.0"
},
{
"fixed": "8.22.0"
}
],
"source": "CPE_RANGE"
}
]
}
{
"extracted_events": [
{
"range": [
{
"introduced": "f2ce6c46b9dcc46ced0ce43fa95176ea7599a854"
},
{
"fixed": "7ea37abc6ac0120ba5f6d94be8d196f7cf1506bb"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
}
]
}
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-80229.json"
[
{
"deprecated": false,
"digest": {
"line_hashes": [
"286481243370392075526062118659509114348",
"196216237767420629426097604457509099271",
"68125101134514249852390309734181512406",
"31227070220736528463295638619520929314"
],
"threshold": 0.9
},
"id": "CVE-2026-80229-49021c9f",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/curl/curl.git/commit/7ea37abc6ac0120ba5f6d94be8d196f7cf1506bb",
"target": {
"file": "lib/vtls/openssl.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "93812128733312520413839406253910216274",
"length": 4945
},
"id": "CVE-2026-80229-74875d56",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/curl/curl.git/commit/7ea37abc6ac0120ba5f6d94be8d196f7cf1506bb",
"target": {
"file": "lib/vtls/openssl.c",
"function": "Curl_ossl_ctx_init"
}
}
]
"2026-10-15T07:34:56Z"