CVE-2016-5419
TLS session resumption client cert bypass
Project curl Security Advisory, August 3rd 2016 - Permalink
VULNERABILITY
libcurl would attempt to resume a TLS session even if the client certificate had changed. That is unacceptable since a server by specification is allowed to skip the client certificate check on resume, and may instead use the old identity which was established by the previous certificate (or no certificate).
libcurl supports by default the use of TLS session id/ticket to resume previous TLS sessions to speed up subsequent TLS handshakes. They are used when for any reason an existing TLS connection could not be kept alive to make the next handshake faster.
INFO
This flaw also affects the curl command line tool.
The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2016-5419 to this issue.
CWE-305: Authentication Bypass by Primary Weakness
Severity: High
AFFECTED VERSIONS
This flaw is relevant for all versions of curl and libcurl that support TLS and client certificates.
- Affected versions: curl 5.0 to and including 7.50.0
- Not affected versions: curl < 5.0 and curl >= 7.50.1
- Introduced-in: https://github.com/curl/curl/commit/ae1912cb0d494b48d514
libcurl is used by many applications, but not always advertised as such!
SOLUTION
In version 7.50.1, TLS session resumption is disabled when a client certificate is used so that a subsequent connection attempt to the same server cannot risk getting a previously authenticated session resumed.
RECOMMENDATIONS
We suggest you take one of the following actions immediately, in order of preference:
A - Upgrade curl and libcurl to version 7.50.1
B - Apply the patch to your version and rebuild
C - Set CURLOPT_SSL_SESSIONID_CACHE
to 0L when using
client certificates
TIMELINE
It was first reported to the curl project on April 15 2016. We contacted distros@openwall on July 31.
libcurl 7.50.1 was released on August 3 2016, coordinated with the publication of this advisory.
CREDITS
- Reported-by: Bru Rom
- Patched-by: Daniel Stenberg
- Help-by: Eric Rescorla, Ray Satiro
Thanks a lot!