CVE-2021-22901

high

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.

References

https://cert-portal.siemens.com/productcert/pdf/ssa-389290.pdf

https://cert-portal.siemens.com/productcert/pdf/ssa-732250.pdf

https://github.com/curl/curl/commit/7f4a9a9b2a49547eae24d2e19bc5c346e9026479

https://hackerone.com/reports/1180380

https://security.netapp.com/advisory/ntap-20210723-0001/

https://security.netapp.com/advisory/ntap-20210727-0007/

https://www.oracle.com/security-alerts/cpuapr2022.html

https://www.oracle.com/security-alerts/cpujan2022.html

https://www.oracle.com//security-alerts/cpujul2021.html

Details

Source: Mitre, NVD

Published: 2021-06-11

Risk Information

CVSS v2

Base Score: 6.8

Vector: CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P

Severity: Medium

CVSS v3

Base Score: 8.1

Vector: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

Severity: High