ssl: NULL in subjectAltNames¶
Warning
This resource is maintained for historical reference and does not contain the latest vulnerability info for Python.
The canonical database for vulnerabilities affecting Python is available on GitHub in the Open Source Vulnerability (OSV) format. This vulnerability can be viewed online at the Open Source Vulnerability Database.
SSL module fails to handle NULL bytes inside subjectAltNames general names.
It’s related to Ruby’s CVE-2013-4073.
Issue #18709 reported by Christian Heimes at 2013-08-12.
Dates:
- Disclosure date: 2013-06-27 (Ruby issue)
- Reported by: Ryan Sleevi of the Google Chrome Security Team
Fixed In¶
- Python 2.6.9 (2013-10-29) fixed by commit 82f8828 (branch 2.7) (2013-08-23)
- Python 2.7.6 (2013-11-10) fixed by commit 82f8828 (branch 2.7) (2013-08-23)
- Python 3.2.6 (2014-10-12) fixed by commit ec3c103 (branch 3.2) (2014-09-30)
- Python 3.3.3 (2013-11-17) fixed by commit 824f7f3 (branch 3.3) (2013-08-16)
- Python 3.4.0 (2014-03-16) fixed by commit 824f7f3 (branch 3.3) (2013-08-16)
Python issue¶
SSL module fails to handle NULL bytes inside subjectAltNames general names (CVE-2013-4238).
- Python issue: bpo-18709
- Creation date: 2013-08-12
- Reporter: Christian Heimes
CVE-2013-4238¶
The ssl.match_hostname 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.
- CVE ID: CVE-2013-4238
- Published: 2013-08-18
- CVSS Score: 4.3
Timeline¶
Timeline using the disclosure date 2013-06-27 as reference:
- 2013-06-27: Disclosure date (Ruby issue)
- 2013-08-12 (+46 days): Python issue bpo-18709 reported by Christian Heimes
- 2013-08-16 (+50 days): commit 824f7f3 (branch 3.3)
- 2013-08-18 (+52 days): CVE-2013-4238 published
- 2013-08-23 (+57 days): commit 82f8828 (branch 2.7)
- 2013-10-29 (+124 days): Python 2.6.9 released
- 2013-11-10 (+136 days): Python 2.7.6 released
- 2013-11-17 (+143 days): Python 3.3.3 released
- 2014-03-16: Python 3.4.0 released
- 2014-09-30 (+460 days): commit ec3c103 (branch 3.2)
- 2014-10-12 (+472 days): Python 3.2.6 released