curl / Docs / Security / SSL_VERIFYSTATUS ignored

SSL_VERIFYSTATUS ignored

Project curl Security Advisory, February 22, 2017 - Permalink

VULNERABILITY

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.

INFO

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.

AFFECTED VERSIONS

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!

THE SOLUTION

In version 7.53.0, the actual result of the check is properly used.

A patch for CVE-2017-2629 is available.

RECOMMENDATIONS

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

TIME LINE

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.

CREDITS

Reported by Marcus Hoffmann