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.
{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "curl",
"binary_version": "8.18.0-1ubuntu2.7"
},
{
"binary_name": "libcurl3t64-gnutls",
"binary_version": "8.18.0-1ubuntu2.7"
},
{
"binary_name": "libcurl4t64",
"binary_version": "8.18.0-1ubuntu2.7"
}
]
}