cURL / Mailing Lists / curl-library / Single Mail

curl-library

curl security advisory 20131217: libcurl cert name check ignore with GnuTLS

From: Daniel Stenberg <daniel_at_haxx.se>
Date: Tue, 17 Dec 2013 08:59:52 +0100 (CET)

                   libcurl cert name check ignore with GnuTLS
                   ==========================================

Project cURL Security Advisory, December 17th 2013
http://curl.haxx.se/docs/security.html

1. VULNERABILITY

   (This issue is almost identical to the one named 20131115 / CVE-2013-4545,
   but this problem affects a different SSL backend.)

   libcurl is vulnerable to a case of missing out the checking of the
   certificate CN or SAN name field when the digital signature verification is
   turned off.

   libcurl offers two separate and independent options for verifying a server's
   TLS certificate. CURLOPT_SSL_VERIFYPEER and CURLOPT_SSL_VERIFYHOST. The
   first one tells libcurl to verify the trust chain using a CA cert bundle,
   while the second tells libcurl to make sure that the name fields in the
   server certificate meets the criteria. Both options are enabled by default.

   This flaw had the effect that when an application disabled
   CURLOPT_SSL_VERIFYPEER, libcurl mistakenly also skipped the
   CURLOPT_SSL_VERIFYHOST check. Applications can disable
   CURLOPT_SSL_VERIFYPEER and still achieve security by doing the check on its
   own using other means.

   The curl command line tool is not affected by this problem as it either
   enables both options or disables both at the same time.

   There are no known exploits available at this time.

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

2. AFFECTED VERSIONS

   This flaw only exists in the TLS backend that uses GnuTLS. If libcurl is
   built with another TLS backend, it isn't affected.

   Affected versions: from libcurl 7.21.4 to and including 7.33.0
   Not affected versions: libcurl before 7.21.4 and >= 7.34.0

   libcurl is used by many applications, but not always advertised as such!

3. THE SOLUTION

   libcurl 7.34.0 makes sure that both options independently will cause the
   operation to fail unless the criteria is fulfilled.

   A patch for this is available at:

     http://curl.haxx.se/cve-2013-6422.patch

4. RECOMMENDATIONS

   We suggest you take one of the following actions immediately, in order of
   preference:

   A - Upgrade to curl and libcurl 7.34.0

   B - Apply the patch and rebuild libcurl

   C - Make sure CURLOPT_SSL_VERIFYPEER is not disabled

   D - Build libcurl with another TLS backend than GnuTLS

5. TIME LINE

   Vulnerability reported by Marc Deslauriers.

   It was reported to the curl project on November 29th 2013. We contacted
   distros_at_openwall on December 3rd.

   libcurl 7.34.0 was released on December 17th 2013, coordinated with the
   publication of this advisory.

6. CREDITS

   Reported by Marc Deslauriers. Thanks a lot!

-- 
  / daniel.haxx.se
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html
Received on 2013-12-17