CVE-2014-0139
cURL and libcurl 7.1 before 7.36.0, when using the OpenSSL, axtls, qsossl or gskit libraries for TLS, recognize a wildcard IP address in the subject's Common Name (CN) field of an X.509 certificate, which might allow man-in-the-middle attackers to spoof arbitrary SSL servers via a crafted certificate issued by a legitimate Certification Authority.
02 / AFFECTED SOFTWARE
Affected packages
68 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
libcurl incorrectly validates wildcard SSL certificates containing literal IP addresses. RFC 2818 covers the requirements for matching Common Names (CNs) and subjectAltNames in order to establish valid SSL connections. It first discusses CNs that are for hostnames, and the rules for wildcards in this case. The next paragraph in the RFC then discusses CNs that are IP addresses: 'In some cases, the URI is specified as an IP address rather than a hostname. In this case, the `iPAddress` subjectAltName must be present in the certificate and must exactly match the IP in the URI.' The intention of the RFC is clear in that you should not be able to use wildcards with IP addresses (in order to avoid the ability to perform man-in-the-middle attacks). Unfortunately libcurl fails to adhere to this rule under certain conditions, and subsequently it would allow and use a wildcard match specified in the CN field. Exploiting this flaw, a malicious server could participate in a MITM attack or easier fool users that it is a legitimate site for whatever purpose, when it actually is not. A good CA should refuse to issue a certificate with the CN as indicated, however there only need be one CA to issue one in error for this issue to result in the user getting no warning at all and being vulnerable to MITM. This flaw is only present in libcurl when built to use one out of a few specific TLS libraries: OpenSSL, axTLS, qsossl or gskit. This problem is similar to one previously reported by Richard Moore, found in multiple browsers.
cURL and libcurl 7.1 before 7.36.0, when using the OpenSSL, axtls, qsossl or gskit libraries for TLS, recognize a wildcard IP address in the subject's Common Name (CN) field of an X.509 certificate, which might allow man-in-the-middle attackers to spoof arbitrary SSL servers via a crafted certificate issued by a legitimate Certification Authority.
05 / REFERENCES
Further evidence
- http://advisories.mageia.org/MGASA-2015-0165.html
- http://curl.haxx.se/docs/adv_20140326B.html
- http://lists.opensuse.org/opensuse-updates/2014-04/msg00042.html
- http://secunia.com/advisories/57836
- http://secunia.com/advisories/57966
- http://secunia.com/advisories/57968
- http://secunia.com/advisories/58615
- http://secunia.com/advisories/59458
- http://www-01.ibm.com/support/docview.wss?uid=swg21675820
- http://www-947.ibm.com/support/entry/portal/docdisplay?lndocid=MIGR-5095862
- http://www.debian.org/security/2014/dsa-2902
- http://www.getchef.com/blog/2014/04/09/chef-server-11-0-12-release/
- http://www.getchef.com/blog/2014/04/09/enterprise-chef-1-4-9-release/
- http://www.getchef.com/blog/2014/04/09/enterprise-chef-11-1-3-release/
- http://www.mandriva.com/security/advisories?name=MDVSA-2015:213
- http://www.oracle.com/technetwork/topics/security/cpujul2015-2367936.html
- http://www.ubuntu.com/usn/USN-2167-1