Merge lp:~andrewsomething/bzr/CVE-2013-2099 into lp:bzr
Proposed by
Andrew Starr-Bochicchio
Status: | Merged |
---|---|
Approved by: | John A Meinel |
Approved revision: | no longer in the source branch. |
Merged at revision: | 6574 |
Proposed branch: | lp:~andrewsomething/bzr/CVE-2013-2099 |
Merge into: | lp:bzr |
Diff against target: |
48 lines (+24/-1) 2 files modified
bzrlib/tests/test_https_urllib.py (+16/-0) bzrlib/transport/http/_urllib2_wrappers.py (+8/-1) |
To merge this branch: | bzr merge lp:~andrewsomething/bzr/CVE-2013-2099 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
bzr-core | Pending | ||
Review via email: mp+164767@code.launchpad.net |
Commit message
Fix CVE 2013-2009. Avoid allowing multiple wildcards in a single SSL cert hostname segment.
To post a comment you must log in.
On Mon, May 20, 2013 at 04:41:27PM -0000, Andrew Starr-Bochicchio wrote: transport/ http/_urllib2_ wrappers. py' transport/ http/_urllib2_ wrappers. py 2012-06-10 22:48:08 +0000 transport/ http/_urllib2_ wrappers. py 2013-05-20 16:40:34 +0000 to_pat( dn):
> === modified file 'bzrlib/
> --- bzrlib/
> +++ bzrlib/
> @@ -400,9 +400,16 @@
>
> # These two methods were imported from Python 3.2's ssl module
>
> -def _dnsname_
> +def _dnsname_to_pat(dn, max_wildcards=1):
> pats = []
> for frag in dn.split(r'.'):
> + if frag.count('*') > max_wildcards:
> + # Python 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 ValueError(
> + "too many wildcards in certificate DNS name: " + repr(dn))
> if frag == '*':
> # When '*' is a fragment by itself, it matches a non-empty dotless
> # fragment.
s/survery/survey/ ?
Looks good otherwise.
I would "review approve" but don't have my GPG credentials on me.
Jelmer