CVE-2021-22901
Published: 26 May 2021
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.
Notes
Author | Note |
---|---|
mdeslaur | since 7.75.0 only |
Priority
CVSS 3 base score: 8.1
Status
Package | Release | Status |
---|---|---|
curl Launchpad, Ubuntu, Debian |
bionic |
Not vulnerable
(7.58.0-2ubuntu3.13)
|
focal |
Not vulnerable
(7.68.0-1ubuntu2.5)
|
|
groovy |
Not vulnerable
(7.68.0-1ubuntu4.3)
|
|
hirsute |
Not vulnerable
(7.74.0-1ubuntu2)
|
|
impish |
Not vulnerable
(7.74.0-1.2ubuntu1)
|
|
jammy |
Not vulnerable
(7.74.0-1.2ubuntu1)
|
|
precise |
Not vulnerable
|
|
trusty |
Not vulnerable
|
|
upstream |
Released
(7.77.0)
|
|
xenial |
Not vulnerable
|