Fix for CVE 2013-2099
This commit is contained in:
parent
08349fb2f3
commit
1009eb3e51
@ -0,0 +1,36 @@
|
||||
From ca207acb4fdea344bb3a775d44aa0d9f59ad31a1 Mon Sep 17 00:00:00 2001
|
||||
From: Toshio Kuratomi <toshio@fedoraproject.org>
|
||||
Date: Mon, 15 Jul 2013 10:58:20 -0700
|
||||
Subject: [PATCH] fix for http://bugs.python.org/issue17980 in code backported
|
||||
from the python3 stdlib
|
||||
|
||||
---
|
||||
pip/backwardcompat/ssl_match_hostname.py | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/pip/backwardcompat/ssl_match_hostname.py b/pip/backwardcompat/ssl_match_hostname.py
|
||||
index 5707649..a6fadf4 100644
|
||||
--- a/pip/backwardcompat/ssl_match_hostname.py
|
||||
+++ b/pip/backwardcompat/ssl_match_hostname.py
|
||||
@@ -7,9 +7,17 @@ __version__ = '3.2a3'
|
||||
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.
|
||||
--
|
||||
1.7.11.7
|
||||
|
Loading…
Reference in New Issue
Block a user