CVE-2013-4238: Input Validation
A flaw was found in the way ssl.matchhostname() from the Python SSL module checked the hostname's identity when handling certificates that contain hostnames with NULL bytes. An attacker could potentially exploit this flaw to conduct man-in-the-middle attacks to spoof SSL servers. Note that to exploit this issue, an attacker would need to obtain a carefully-crafted certificate signed by an authority that the client trusts.
References:
http://bugs.python.org/issue18709 http://bugs.python.org/file31241/CVE-2013-4073py34.patch http://bugs.python.org/file31242/CVE-2013-4073py33.patch http://bugs.python.org/file31243/CVE-2013-4073py27.patch
Other sources
The ssl.matchhostname function in the SSL module in Python 2.6 through 3.4 does not properly handle a '\0' character in a domain name in the Subject Alternative Name field of an X.509 certificate, which allows man-in-the-middle attackers to spoof arbitrary SSL servers via a crafted certificate issued by a legitimate Certification Authority, a related issue to CVE-2009-2408.
— MITRE
Affected Software
Remediation
Patch Available
Patch Available
Event History
Frequently Asked Questions
What is the severity of CVE-2013-4238?
CVE-2013-4238 has a moderate severity level due to the potential for man-in-the-middle attacks.
How do I fix CVE-2013-4238?
To fix CVE-2013-4238, upgrade to a version of Python where the vulnerability has been patched.
Which versions of Python are affected by CVE-2013-4238?
CVE-2013-4238 affects multiple versions of Python, including 2.6.1 through 3.4 and several Ubuntu versions.
What kind of attacks can CVE-2013-4238 be exploited for?
CVE-2013-4238 can be exploited to carry out man-in-the-middle attacks, allowing attackers to spoof SSL servers.
Is CVE-2013-4238 related to SSL certificate validation?
Yes, CVE-2013-4238 is specifically related to how ssl.match_hostname() validates SSL certificate hostnames.