From 1514d1252f96e6a83eb65c439522a6b5443f6a1a Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sun, 23 Jan 2022 10:17:41 -0500 Subject: [PATCH] [3.9] bpo-46474: Avoid REDoS in EntryPoint.pattern (sync with importlib_metadata 4.10.1) (GH-30803). (GH-30828) (cherry picked from commit 51c3e28c8a163e58dc753765e3cc51d5a717e70d) Co-authored-by: Jason R. Coombs --- Lib/importlib/metadata.py | 4 ++-- .../next/Library/2022-01-22-14-49-10.bpo-46474.eKQhvx.rst | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2022-01-22-14-49-10.bpo-46474.eKQhvx.rst diff --git a/Lib/importlib/metadata.py b/Lib/importlib/metadata.py index 594986ce23efab..7b8038fd63a847 100644 --- a/Lib/importlib/metadata.py +++ b/Lib/importlib/metadata.py @@ -49,8 +49,8 @@ class EntryPoint( pattern = re.compile( r'(?P[\w.]+)\s*' - r'(:\s*(?P[\w.]+))?\s*' - r'(?P\[.*\])?\s*$' + r'(:\s*(?P[\w.]+)\s*)?' + r'((?P\[.*\])\s*)?$' ) """ A regular expression describing the syntax for an entry point, diff --git a/Misc/NEWS.d/next/Library/2022-01-22-14-49-10.bpo-46474.eKQhvx.rst b/Misc/NEWS.d/next/Library/2022-01-22-14-49-10.bpo-46474.eKQhvx.rst new file mode 100644 index 00000000000000..156b7de4f67877 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-01-22-14-49-10.bpo-46474.eKQhvx.rst @@ -0,0 +1,2 @@ +In ``importlib.metadata.EntryPoint.pattern``, avoid potential REDoS by +limiting ambiguity in consecutive whitespace.