curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support from WolfSSL. We help you work out your issues, debug your libcurl applications, use the API, port to new platforms, add new features and more. With a team lead by the curl founder himself.

[SECURITY ADVISORY] curl: UAF and double-free in MQTT sending

From: Daniel Stenberg via curl-library <>
Date: Wed, 15 Sep 2021 08:20:45 +0200 (CEST)

UAF and double-free in MQTT sending

Project curl Security Advisory, September 15th 2021 -


When sending data to an MQTT server, libcurl could in some circumstances
erroneously keep a pointer to an already freed memory area and both use that
again in a subsequent call to send data and also free it *again*.

We are not aware of any case of this flaw having been exploited in the wild.

This flaw was introduced in commit
[2522903b79]( but since MQTT
support was marked 'experimental' then and not enabled in the build by default
until curl 7.73.0 (October 14, 2020) we count that as the first flawed
The fixed libcurl version properly clears the pointer when the data has been
The Common Vulnerabilities and Exposures (CVE) project has assigned the name
CVE-2021-22945 to this issue.
CWE-415: Double Free
Severity: Medium
- Affected versions: curl 7.73.0 to and including 7.78.0
- Not affected versions: curl < 7.73.0 and curl >= 7.79.0
Also note that libcurl is used by many applications, and not always advertised
as such.
A [fix for CVE-2021-22945](
  A - Upgrade curl to version 7.79.0
  B - Apply the patch to your local version
  C - Do not use MQTT
This issue was reported to the curl project on July 19, 2021.
This advisory was posted on September 15, 2021.
This issue was reported and patched by z2_.
Thanks a lot!
  | Commercial curl support up to 24x7 is available!
  | Private help, bug fixes, support, ports, new features
Received on 2021-09-15