aboutsummaryrefslogtreecommitdiff
path: root/debian/patches
diff options
context:
space:
mode:
authorDaniele Tricoli <eriol@mornie.org>2013-05-20 17:47:59 +0000
committerDaniele Tricoli <eriol@mornie.org>2013-05-20 17:47:59 +0000
commit2c05e52e60674a2d9240c05330f11875096c6e71 (patch)
tree6c552b94f193feadd7e2459bf062d7a6bc801495 /debian/patches
parent3fe56c4651d649b313c1640a795c3545b3972d8b (diff)
downloadpython-urllib3-2c05e52e60674a2d9240c05330f11875096c6e71.tar
python-urllib3-2c05e52e60674a2d9240c05330f11875096c6e71.tar.gz
* debian/patches/06_fix_abuse_of_match_hostname_for_DoS.patch
- Added upstream patch to fix possible abuse of ssl.match_hostname() for denial of service using certificates with many wildcards (CVE-2013-2099) (Closes: #709070) Thanks Henri Salo and Jakub Wilk for the report
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/06_fix_abuse_of_match_hostname_for_DoS.patch26
-rw-r--r--debian/patches/series1
2 files changed, 27 insertions, 0 deletions
diff --git a/debian/patches/06_fix_abuse_of_match_hostname_for_DoS.patch b/debian/patches/06_fix_abuse_of_match_hostname_for_DoS.patch
new file mode 100644
index 0000000..57a4c06
--- /dev/null
+++ b/debian/patches/06_fix_abuse_of_match_hostname_for_DoS.patch
@@ -0,0 +1,26 @@
+Description: Fix possible abuse of ssl.match_hostname() for denial
+ of service using certificates with many wildcards (CVE-2013-2099)
+Origin: http://hg.python.org/cpython/rev/c627638753e2
+Bug: http://bugs.python.org/issue17980
+Bug-Debian: http://bugs.debian.org/709070
+
+--- a/urllib3/packages/ssl_match_hostname/__init__.py
++++ b/urllib3/packages/ssl_match_hostname/__init__.py
+@@ -7,9 +7,16 @@
+ class CertificateError(ValueError):
+ pass
+
+-def _dnsname_to_pat(dn):
++def _dnsname_to_pat(dn, max_wildcards=1):
+ pats = []
+ for frag in dn.split(r'.'):
++ if frag.count('*') > max_wildcards:
++ # Issue #17980: avoid denials of service by refusing more
++ # than one wildcard per fragment. A survery of established
++ # policy among SSL implementations showed it to be a
++ # reasonable choice.
++ raise CertificateError(
++ "too many wildcards in certificate DNS name: " + repr(dn))
+ if frag == '*':
+ # When '*' is a fragment by itself, it matches a non-empty dotless
+ # fragment.
diff --git a/debian/patches/series b/debian/patches/series
index a8d0b0b..f44758a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,4 @@
03_no-setuptools.patch
04_relax_nosetests_options.patch
05_fix_python3_syntax_error_in_ntlmpool.patch
+06_fix_abuse_of_match_hostname_for_DoS.patch