{
    "data_type": "CVE",
    "data_format": "MITRE",
    "data_version": "4.0",
    "CVE_data_meta": {
        "ID": "CVE-2021-22901",
        "ASSIGNER": "support@hackerone.com",
        "STATE": "PUBLIC"
    },
    "affects": {
        "vendor": {
            "vendor_data": [
                {
                    "vendor_name": "n/a",
                    "product": {
                        "product_data": [
                            {
                                "product_name": "https://github.com/curl/curl",
                                "version": {
                                    "version_data": [
                                        {
                                            "version_value": "7.75.0 through 7.76.1"
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                }
            ]
        }
    },
    "problemtype": {
        "problemtype_data": [
            {
                "description": [
                    {
                        "lang": "eng",
                        "value": "Use After Free (CWE-416)"
                    }
                ]
            }
        ]
    },
    "references": {
        "reference_data": [
            {
                "refsource": "MISC",
                "name": "https://hackerone.com/reports/1180380",
                "url": "https://hackerone.com/reports/1180380"
            },
            {
                "refsource": "MISC",
                "name": "https://curl.se/docs/CVE-2021-22901.html",
                "url": "https://curl.se/docs/CVE-2021-22901.html"
            },
            {
                "refsource": "MISC",
                "name": "https://github.com/curl/curl/commit/7f4a9a9b2a49547eae24d2e19bc5c346e9026479",
                "url": "https://github.com/curl/curl/commit/7f4a9a9b2a49547eae24d2e19bc5c346e9026479"
            },
            {
                "url": "https://www.oracle.com//security-alerts/cpujul2021.html",
                "refsource": "MISC",
                "name": "https://www.oracle.com//security-alerts/cpujul2021.html"
            },
            {
                "refsource": "CONFIRM",
                "name": "https://security.netapp.com/advisory/ntap-20210723-0001/",
                "url": "https://security.netapp.com/advisory/ntap-20210723-0001/"
            },
            {
                "url": "https://www.oracle.com/security-alerts/cpujan2022.html",
                "refsource": "MISC",
                "name": "https://www.oracle.com/security-alerts/cpujan2022.html"
            },
            {
                "refsource": "CONFIRM",
                "name": "https://security.netapp.com/advisory/ntap-20210727-0007/",
                "url": "https://security.netapp.com/advisory/ntap-20210727-0007/"
            },
            {
                "url": "https://www.oracle.com/security-alerts/cpuapr2022.html",
                "refsource": "MISC",
                "name": "https://www.oracle.com/security-alerts/cpuapr2022.html"
            },
            {
                "refsource": "CONFIRM",
                "name": "https://cert-portal.siemens.com/productcert/pdf/ssa-389290.pdf",
                "url": "https://cert-portal.siemens.com/productcert/pdf/ssa-389290.pdf"
            },
            {
                "refsource": "CONFIRM",
                "name": "https://cert-portal.siemens.com/productcert/pdf/ssa-732250.pdf",
                "url": "https://cert-portal.siemens.com/productcert/pdf/ssa-732250.pdf"
            }
        ]
    },
    "description": {
        "description_data": [
            {
                "lang": "eng",
                "value": "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."
            }
        ]
    }
}