CVE-2017-2629
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 does not 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 is valid proof, even when there is none or if the server does not 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).
INFO
The mistake happened in a large code merge for the HTTPS proxy feature 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
Severity: Medium
AFFECTED VERSIONS
curl has supported this option since version 7.41.0.
This flaw exists in the following curl and libcurl versions.
- Affected versions: curl 7.52.0 to and including 7.52.1
- Not affected versions: curl < 7.52.0 and >= 7.53.0
- Introduced-in: https://github.com/curl/curl/commit/cb4e2be7c6d42ca0780
libcurl is used by many applications, but not always advertised as such!
SOLUTION
In version 7.53.0, the actual result of the check is properly used.
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
TIMELINE
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
- Patched-by: Daniel Stenberg
Thanks a lot!