Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
curl curl
Default version status: unaffected
8.14.0 to < 8.14.2affected8.15.0 to < 8.16.1affected8.17.0 to < 8.20.1affected8.21.0 to < 8.22.0affected
curl curl
Default version status: unaffected
f2ce6c46b9dcc46ced0ce43fa95176ea7599a854 to < 7ea37abc6ac0120ba5f6d94be8d196f7cf1506bbaffected
curl curl
Default version status: unaffected
8.21.0affected8.20.0affected8.19.0affected8.18.0affected8.17.0affected8.16.0affected8.15.0affected8.14.1affected8.14.0affected