Blame SOURCES/00366-CVE-2021-3733.patch

605da4
From 29c669440dddba61d18e1b7fdd57180cae9e4ae3 Mon Sep 17 00:00:00 2001
605da4
From: Yeting Li <liyt@ios.ac.cn>
605da4
Date: Wed, 7 Apr 2021 19:27:41 +0800
605da4
Subject: [PATCH] bpo-43075: Fix ReDoS in urllib AbstractBasicAuthHandler
605da4
 (GH-24391)
605da4
605da4
Fix Regular Expression Denial of Service (ReDoS) vulnerability in
605da4
urllib.request.AbstractBasicAuthHandler. The ReDoS-vulnerable regex
605da4
has quadratic worst-case complexity and it allows cause a denial of
605da4
service when identifying crafted invalid RFCs. This ReDoS issue is on
605da4
the client side and needs remote attackers to control the HTTP server.
605da4
(cherry picked from commit 7215d1ae25525c92b026166f9d5cac85fb1defe1)
605da4
605da4
Co-authored-by: Yeting Li <liyt@ios.ac.cn>
605da4
---
605da4
 Lib/urllib/request.py                                           | 2 +-
605da4
 .../next/Security/2021-01-31-05-28-14.bpo-43075.DoAXqO.rst      | 1 +
605da4
 2 files changed, 2 insertions(+), 1 deletion(-)
605da4
 create mode 100644 Misc/NEWS.d/next/Security/2021-01-31-05-28-14.bpo-43075.DoAXqO.rst
605da4
605da4
diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
605da4
index 6624e04317ba2..56565405a7097 100644
605da4
--- a/Lib/urllib/request.py
605da4
+++ b/Lib/urllib/request.py
605da4
@@ -947,7 +947,7 @@ class AbstractBasicAuthHandler:
605da4
     # (single quotes are a violation of the RFC, but appear in the wild)
605da4
     rx = re.compile('(?:^|,)'   # start of the string or ','
605da4
                     '[ \t]*'    # optional whitespaces
605da4
-                    '([^ \t]+)' # scheme like "Basic"
605da4
+                    '([^ \t,]+)' # scheme like "Basic"
605da4
                     '[ \t]+'    # mandatory whitespaces
605da4
                     # realm=xxx
605da4
                     # realm='xxx'
605da4
diff --git a/Misc/NEWS.d/next/Security/2021-01-31-05-28-14.bpo-43075.DoAXqO.rst b/Misc/NEWS.d/next/Security/2021-01-31-05-28-14.bpo-43075.DoAXqO.rst
605da4
new file mode 100644
605da4
index 0000000000000..1c9f727e965fb
605da4
--- /dev/null
605da4
+++ b/Misc/NEWS.d/next/Security/2021-01-31-05-28-14.bpo-43075.DoAXqO.rst
605da4
@@ -0,0 +1 @@
605da4
+Fix Regular Expression Denial of Service (ReDoS) vulnerability in :class:`urllib.request.AbstractBasicAuthHandler`.  The ReDoS-vulnerable regex has quadratic worst-case complexity and it allows cause a denial of service when identifying crafted invalid RFCs. This ReDoS issue is on the client side and needs remote attackers to control the HTTP server.