diff --git a/.python-setuptools.metadata b/.python-setuptools.metadata new file mode 100644 index 0000000..9d97793 --- /dev/null +++ b/.python-setuptools.metadata @@ -0,0 +1 @@ +878b8c351cac940e0b9fd1ba3ad49665dfc2889c setuptools-53.0.0.tar.gz diff --git a/CVE-2022-40897.patch b/CVE-2022-40897.patch new file mode 100644 index 0000000..4e09c4f --- /dev/null +++ b/CVE-2022-40897.patch @@ -0,0 +1,28 @@ +diff --git a/setuptools/package_index.py b/setuptools/package_index.py +index 123e958..a90b810 100644 +--- a/setuptools/package_index.py ++++ b/setuptools/package_index.py +@@ -215,7 +215,7 @@ def unique_values(func): + return wrapper + + +-REL = re.compile(r"""<([^>]*\srel\s*=\s*['"]?([^'">]+)[^>]*)>""", re.I) ++REL = re.compile(r"""<([^>]*\srel\s{0,10}=\s{0,10}['"]?([^'" >]+)[^>]*)>""", re.I) + # this line is here to fix emacs' cruddy broken syntax highlighting + + +diff --git a/setuptools/tests/test_packageindex.py b/setuptools/tests/test_packageindex.py +index 8e9435e..bc1e373 100644 +--- a/setuptools/tests/test_packageindex.py ++++ b/setuptools/tests/test_packageindex.py +@@ -308,3 +308,10 @@ class TestPyPIConfig: + cred = cfg.creds_by_repository['https://pypi.org'] + assert cred.username == 'jaraco' + assert cred.password == 'pity%' ++ ++@pytest.mark.timeout(1) ++def test_REL_DoS(): ++ """ ++ REL should not hang on a contrived attack string. ++ """ ++ setuptools.package_index.REL.search('< rel=' + ' ' * 2**12) diff --git a/python-setuptools.spec b/python-setuptools.spec index 698b8df..297146c 100644 --- a/python-setuptools.spec +++ b/python-setuptools.spec @@ -28,7 +28,7 @@ Name: python-setuptools # When updating, update the bundled libraries versions bellow! Version: 53.0.0 -Release: 11%{?dist} +Release: 12%{?dist} Summary: Easily build and distribute Python packages # setuptools is MIT # appdirs is MIT @@ -59,6 +59,11 @@ Patch1: license-file-metadata.patch # Fixes https://bugzilla.redhat.com/2124281 Patch2: https://github.com/pypa/setuptools/pull/2580.patch +# Security fix for CVE-2022-40897 +# Regular Expression Denial of Service (ReDoS) in package_index.py +# Resolved upstream: https://github.com/pypa/setuptools/commit/43a9c9bfa6aa626ec2a22540bea28d2ca77964be +Patch3: CVE-2022-40897.patch + BuildArch: noarch BuildRequires: python%{python3_pkgversion}-devel @@ -229,6 +234,10 @@ PYTHONPATH=$(pwd) %pytest --ignore=pavement.py %changelog +* Wed Jan 11 2023 Charalampos Stratakis - 53.0.0-12 +- Security fix for CVE-2022-40897 +Resolves: rhbz#2158559 + * Wed Sep 07 2022 Miro HronĨok - 53.0.0-11 - Fix case sensitivity of entry point names and keys in setup.cfg - Resolves: rhbz#2124281