Project curl Security Advisory, February 22, 2017 - Permalink
curl and libcurl support "OCSP stapling", also known as the TLS Certificate
Status Request extension (using the
CURLOPT_SSL_VERIFYSTATUS option). When
telling curl to use this feature, it uses that TLS extension to ask for a
fresh proof of the server's certificate's validity. If the server doesn't
support the extension, or fails to provide said proof, curl is expected to
return an error.
Due to a coding mistake, the code that checks for a test success or failure, ends up always thinking there's valid proof, even when there is none or if the server doesn't support the TLS extension in question. Contrary to how it used to function and contrary to how this feature is documented to work.
This could lead to users not detecting when a server's certificate goes invalid or otherwise be mislead that the server is in a better shape than it is in reality.
This flaw also exists in the command line tool (--cert-status).
We are not aware of any exploit of this flaw.
The mistake happened in a large code merge for the HTTPS proxy feature (commit cb4e2be7c6d42ca0780) and went unnoticed primarily because we have no automated tests for this feature!
The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2017-2629 to this issue.
CWE-304: Missing Critical Step in Authentication
curl has supported this option since version 7.41.0.
This flaw exists in the following curl and libcurl versions.
libcurl is used by many applications, but not always advertised as such!
In version 7.53.0, the actual result of the check is properly used.
A patch for CVE-2017-2629 is available.
We suggest you take one of the following actions immediately, in order of preference:
A - Upgrade curl and libcurl to version 7.53.0
B - Apply the patch to your version and rebuild
C - Do not use the cert status feature
It was first reported to the curl project on January 12.
We contacted distros@openwall on February 15.
curl 7.53.0 was released on February 22 2017, coordinated with the publication of this advisory.
Reported by Marcus Hoffmann