{
  "schema_version": "1.5.0",
  "id": "CURL-CVE-2021-22945",
  "aliases": [
    "CVE-2021-22945"
  ],
  "summary": "UAF and double free in MQTT sending",
  "modified": "2026-04-25T17:48:46.00Z",
  "database_specific": {
    "package": "curl",
    "affects": "both",
    "URL": "https://curl.se/docs/CVE-2021-22945.json",
    "www": "https://curl.se/docs/CVE-2021-22945.html",
    "issue": "https://hackerone.com/reports/1269242",
    "CWE": {
      "id": "CWE-415",
      "desc": "Double Free"
    },
    "award": {
      "amount": "1000",
      "currency": "USD"
    },
    "last_affected": "7.78.0",
    "severity": "Medium"
  },
  "published": "2021-09-15T08:00:00.00Z",
  "affected": [
    {
      "ranges": [
        {
           "type": "SEMVER",
           "events": [
             {"introduced": "7.73.0"},
             {"fixed": "7.79.0"}
           ]
        },
        {
           "type": "GIT",
           "repo": "https://github.com/curl/curl.git",
           "events": [
             {"introduced": "2522903b792ac5a802f780df60dc4647c58e2477"},
             {"fixed": "43157490a5054bd24256fe12876931e8abc9df49"}
           ]
        }
      ],
      "versions": [
        "7.78.0", "7.77.0", "7.76.1", "7.76.0", "7.75.0", "7.74.0", "7.73.0"
      ]
    }
  ],
  "credits": [
    {
      "name": "z2_",
      "type": "FINDER"
    },
    {
      "name": "z2_",
      "type": "REMEDIATION_DEVELOPER"
    }
  ],
  "details": "When sending data to an MQTT server, libcurl could in some circumstances\nerroneously keep a pointer to an already freed memory area and both use that\nagain in a subsequent call to send data and also free it *again*."
}