curl / Docs / Security Problems / Protocol downgrade required TLS bypassed

Protocol downgrade required TLS bypassed

Project curl Security Advisory, September 15th 2021 - Permalink


A user can tell curl to require a successful upgrade to TLS when speaking to an IMAP, POP3 or FTP server (--ssl-reqd on the command line or CURLOPT_USE_SSL set to CURLUSESSL_CONTROL or CURLUSESSL_ALL with libcurl). This requirement could be bypassed if the server would return a properly crafted but perfectly legitimate response.

This flaw would then make curl silently continue its operations without TLS contrary to the instructions and expectations, exposing possibly sensitive data in clear text over the network.

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


This flaw was first introduced in commit ec3bb8f727405 for IMAP and POP3 and in c5ba0c2f544653 for FTP.

SMTP also features a similar TLS upgrade method, but that code in curl doesn't suffer from this bug.

The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2021-22946 to this issue.

CWE-325: Missing Cryptographic Step

Severity: Medium


Also note that libcurl is used by many applications, and not always advertised as such.


A fix for CVE-2021-22946


A - Upgrade curl to version 7.79.0

B - Apply the patch to your local version

C - Do not use IMAP, POP3 or FTP


This issue was reported to the curl project on September 8, 2021.

This advisory was posted on September 15, 2021.


Thanks a lot!