Уязвимость "использование после освобождения" (use-after-free) в curl при обработке TLS 1.3 сессий, приводящая к потенциальному удалённому выполнению кода
Описание
В curl
версии с 7.75.0 до 7.76.1 обнаружена уязвимость типа "использование после освобождения" (use-after-free). Она возникает при использовании уже освобожденной памяти, когда по соединению поступает тикет сессии TLS 1.3. В редких случаях злоумышленник, используя вредоносный сервер, может достичь удаленного выполнения кода на клиенте. В процессе выполнения libcurl
настраивает поддержку тикетов сессий TLS 1.3 на соединении с использованием OpenSSL и хранит указатели на объект передачи в памяти для последующего доступа после получения тикета сессии. Если соединение используется несколькими передачами (например, при повторном использовании соединения HTTP/1.1 или мультиплексированного соединения HTTP/2), первоначальный объект передачи может быть освобожден до установления новой сессии на этом соединении. В таком случае функция может обратиться к памяти, которая, возможно, уже освобождена. При использовании этой памяти libcurl
может даже вызвать указатель на функцию в объекте, что делает возможным удаленное выполнение кода, если серверу удастся каким-то образом содержать скомпрометированные данные в памяти.
Затронутые версии ПО
- curl версии от 7.75.0 до 7.76.1
Тип уязвимости
- Уязвимость типа "использование после освобождения" (use-after-free)
- Удалённое выполнение кода
Ссылки
- PatchThird Party Advisory
- Third Party Advisory
- ExploitPatchVendor Advisory
- PatchThird Party Advisory
- ExploitIssue TrackingThird Party Advisory
- Third Party Advisory
- Third Party Advisory
- PatchThird Party Advisory
- PatchThird Party Advisory
- PatchThird Party Advisory
- PatchThird Party Advisory
- Third Party Advisory
- ExploitPatchVendor Advisory
- PatchThird Party Advisory
- ExploitIssue TrackingThird Party Advisory
- Third Party Advisory
- Third Party Advisory
- PatchThird Party Advisory
- PatchThird Party Advisory
- PatchThird Party Advisory
Уязвимые конфигурации
Одно из
Одно из
Одновременно
Одновременно
Одновременно
Одновременно
Одновременно
Одновременно
Одновременно
Одновременно
Одно из
EPSS
8.1 High
CVSS3
6.8 Medium
CVSS2
Дефекты
Связанные уязвимости
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 co...
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 co...
curl 7.75.0 through 7.76.1 suffers from a use-after-free vulnerability ...
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 co...
EPSS
8.1 High
CVSS3
6.8 Medium
CVSS2