{
  "schema_version": "1.5.0",
  "id": "CURL-CVE-2022-42915",
  "aliases": [
    "CVE-2022-42915"
  ],
  "summary": "HTTP proxy double free",
  "modified": "2026-04-25T17:48:46.00Z",
  "database_specific": {
    "package": "curl",
    "affects": "both",
    "URL": "https://curl.se/docs/CVE-2022-42915.json",
    "www": "https://curl.se/docs/CVE-2022-42915.html",
    "issue": "https://hackerone.com/reports/1722065",
    "CWE": {
      "id": "CWE-415",
      "desc": "Double Free"
    },
    "last_affected": "7.85.0",
    "severity": "Medium"
  },
  "published": "2022-10-26T08:00:00.00Z",
  "affected": [
    {
      "ranges": [
        {
           "type": "SEMVER",
           "events": [
             {"introduced": "7.77.0"},
             {"fixed": "7.86.0"}
           ]
        },
        {
           "type": "GIT",
           "repo": "https://github.com/curl/curl.git",
           "events": [
             {"introduced": "51c0ebcff2140c38ff389b4fcfb8216f5e9d198c"},
             {"fixed": "55e1875729f9d9fc7315cec611bffbd2c817ad89"}
           ]
        }
      ],
      "versions": [
        "7.85.0", "7.84.0", "7.83.1", "7.83.0", "7.82.0", "7.81.0", "7.80.0", 
        "7.79.1", "7.79.0", "7.78.0", "7.77.0"
      ]
    }
  ],
  "credits": [
    {
      "name": "Trail of Bits",
      "type": "FINDER"
    },
    {
      "name": "Daniel Stenberg",
      "type": "REMEDIATION_DEVELOPER"
    }
  ],
  "details": "If curl is told to use an HTTP proxy for a transfer with a non-HTTP(S) URL, it\nsets up the connection to the remote server by issuing a `CONNECT` request to\nthe proxy, and then *tunnels* the rest of protocol through.\n\nAn HTTP proxy might refuse this request (HTTP proxies often only allow\noutgoing connections to specific port numbers, like 443 for HTTPS) and instead\nreturn a non-200 response code to the client.\n\nDue to flaws in the error/cleanup handling, this could trigger a double free\nin curl if one of the following schemes were used in the URL for the transfer:\n`dict`, `gopher`, `gophers`, `ldap`, `ldaps`, `rtmp`, `rtmps`, `telnet`"
}