CVE-2021-22901
Description
curl 7.75.0 through 7.76.1 suffers from a use-after-free vulnerability resulting in already freed memory being used when a TLS 1.3 session ticket arrives over a connection. A malicious server can use this in rare unfortunate circumstances to potentially reach remote code execution in the client. When libcurl at run-time sets up support for TLS 1.3 session tickets on a connection using OpenSSL, it stores pointers to the transfer in-memory object for later retrieval when a session ticket arrives. If the connection is used by multiple transfers (like with a reused HTTP/1.1 connection or multiplexed HTTP/2 connection) that first transfer object might be freed before the new session is established on that connection and then the function will access a memory buffer that might be freed. When using that memory, libcurl might even call a function pointer in the object, making it possible for a remote code execution if the server could somehow manage to get crafted memory content into the correct place in memory.
Predictions
Heuristic predictions, AS-IS, for prioritization only.
Mitigations
Vendor advisory: debian — https://security-tracker.debian.org/tracker/CVE-2021-22901
Vendor advisory: arch — https://security.archlinux.org/ASA-202106-4
Vendor advisory: arch — https://security.archlinux.org/ASA-202106-5
Vendor advisory: arch — https://security.archlinux.org/ASA-202106-6
Vendor advisory: arch — https://security.archlinux.org/ASA-202106-7
OS impact
| OS | Version | Status | Fixed in |
|---|---|---|---|
| arch | fixed | 7.77.0-1 | |
| debian | sid | fixed | 0 |
| debian | bookworm | fixed | 0 |
| debian | bullseye | fixed | 0 |
| debian | forky | fixed | 0 |
| debian | trixie | fixed | 0 |
References
Verify integrity in audit chain (admin only). AS-IS.