import python3x-pip-19.3.1-4.module+el8.5.0+12205+a865257a

This commit is contained in:
CentOS Sources 2021-10-05 20:23:10 -04:00 committed by Stepan Oksanichenko
parent a697ead1e2
commit 125ddf4752
3 changed files with 105 additions and 3 deletions

View File

@ -0,0 +1,42 @@
From 6d2dcef3427b96c36ddfebf217f774a2c5ecad38 Mon Sep 17 00:00:00 2001
From: Lumir Balhar <lbalhar@redhat.com>
Date: Wed, 30 Jun 2021 09:27:07 +0200
Subject: [PATCH] CVE-2021-33503
---
src/pip/_vendor/urllib3/util/url.py | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/pip/_vendor/urllib3/util/url.py b/src/pip/_vendor/urllib3/util/url.py
index 5fe37a7..addaeb7 100644
--- a/src/pip/_vendor/urllib3/util/url.py
+++ b/src/pip/_vendor/urllib3/util/url.py
@@ -63,12 +63,12 @@ IPV6_ADDRZ_RE = re.compile("^" + IPV6_ADDRZ_PAT + "$")
BRACELESS_IPV6_ADDRZ_RE = re.compile("^" + IPV6_ADDRZ_PAT[2:-2] + "$")
ZONE_ID_RE = re.compile("(" + ZONE_ID_PAT + r")\]$")
-SUBAUTHORITY_PAT = (u"^(?:(.*)@)?(%s|%s|%s)(?::([0-9]{0,5}))?$") % (
+_HOST_PORT_PAT = ("^(%s|%s|%s)(?::([0-9]{0,5}))?$") % (
REG_NAME_PAT,
IPV4_PAT,
IPV6_ADDRZ_PAT,
)
-SUBAUTHORITY_RE = re.compile(SUBAUTHORITY_PAT, re.UNICODE | re.DOTALL)
+_HOST_PORT_RE = re.compile(_HOST_PORT_PAT, re.UNICODE | re.DOTALL)
UNRESERVED_CHARS = set(
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._-~"
@@ -374,7 +374,9 @@ def parse_url(url):
scheme = scheme.lower()
if authority:
- auth, host, port = SUBAUTHORITY_RE.match(authority).groups()
+ auth, _, host_port = authority.rpartition("@")
+ auth = auth or None
+ host, port = _HOST_PORT_RE.match(host_port).groups()
if auth and normalize_uri:
auth = _encode_invalid_chars(auth, USERINFO_CHARS)
if port == "":
--
2.31.1

View File

@ -0,0 +1,34 @@
From 4f0099156245ed2873d6945d5e58db741e15836d Mon Sep 17 00:00:00 2001
From: Lumir Balhar <lbalhar@redhat.com>
Date: Tue, 8 Jun 2021 09:51:47 +0200
Subject: [PATCH] CVE-2021-3572
---
src/pip/_internal/vcs/git.py | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/pip/_internal/vcs/git.py b/src/pip/_internal/vcs/git.py
index 92b8457..7b3cc4a 100644
--- a/src/pip/_internal/vcs/git.py
+++ b/src/pip/_internal/vcs/git.py
@@ -120,9 +120,15 @@ class Git(VersionControl):
output = cls.run_command(['show-ref', rev], cwd=dest,
show_stdout=False, on_returncode='ignore')
refs = {}
- for line in output.strip().splitlines():
+ # NOTE: We do not use splitlines here since that would split on other
+ # unicode separators, which can be maliciously used to install a
+ # different revision.
+ for line in output.strip().split("\n"):
+ line = line.rstrip("\r")
+ if not line:
+ continue
try:
- sha, ref = line.split()
+ sha, ref = line.split(" ", maxsplit=2)
except ValueError:
# Include the offending line to simplify troubleshooting if
# this error ever occurs.
--
2.31.1

View File

@ -16,7 +16,7 @@ Name: python3x-%{srcname}
# When updating, update the bundled libraries versions bellow!
# You can use vendor_meta.sh in the dist git repo
Version: 19.3.1
Release: 1%{?dist}
Release: 4%{?dist}
Summary: A tool for installing and managing Python packages
# We bundle a lot of libraries with pip, which itself is under MIT license.
@ -91,6 +91,16 @@ Patch4: dummy-certifi.patch
# https://github.com/pypa/pip/pull/7359
Patch5: network-tests.patch
# Patch for CVE-2021-3572 - pip incorrectly handled unicode separators in git references
# Upstream PR: https://github.com/pypa/pip/pull/9827
# Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1962856
Patch6: CVE-2021-3572.patch
# CVE-2021-33503 Catastrophic backtracking in URL authority parser
# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=1968074
# Upstream fix: https://github.com/urllib3/urllib3/commit/2d4a3fee6de2fa45eb82169361918f759269b4ec
Patch7: CVE-2021-33503.patch
# Downstream only patch
# Users might have local installations of pip from using
# `pip install --user --upgrade pip` on older/newer versions.
@ -185,6 +195,8 @@ BuildRequires: ca-certificates
Requires: ca-certificates
Requires: python%{python3_pkgversion}-setuptools
# Require alternatives version that implements the --keep-foreign flag
Requires(postun): alternatives >= 1.19.1-1
# python38 installs the alternatives master symlink to which we attach a slave
Requires: python38
Requires(post): python38
@ -242,6 +254,8 @@ popd
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
# this goes together with patch4
rm src/pip/_vendor/certifi/*.pem
@ -366,9 +380,9 @@ if [ $1 -eq 0 ]; then
grep -c "^/usr/bin/python3.8 - priority [0-9]*"`
if [ $EXISTS -ne 0 ]; then
alternatives --remove-slave python3 %{_bindir}/python3.8 \
alternatives --keep-foreign --remove-slave python3 %{_bindir}/python3.8 \
pip3
alternatives --remove-slave python3 %{_bindir}/python3.8 \
alternatives --keep-foreign --remove-slave python3 %{_bindir}/python3.8 \
pip-3
fi
fi
@ -403,6 +417,18 @@ fi
%{python_wheeldir}/%{python_wheelname}
%changelog
* Mon Aug 02 2021 Tomas Orsava <torsava@redhat.com> - 19.3.1-4
- Adjusted the postun scriptlets to enable upgrading to RHEL 9
- Resolves: rhbz#1933055
* Wed Jun 30 2021 Lumír Balhar <lbalhar@redhat.com> - 19.3.1-3
- Fix for CVE-2021-33503 Catastrophic backtracking in URL authority parser
Resolves: rhbz#1968074
* Tue Jun 08 2021 Lumír Balhar <lbalhar@redhat.com> - 19.3.1-2
- Fix for CVE-2021-3572 - pip incorrectly handled unicode separators in git references
Resolves: rhbz#1962856
* Thu Apr 23 2020 Lumír Balhar <lbalhar@redhat.com> - 19.3.1
- Rebase to 19.3.1 to enable support for manylinux2014
Resolves: rhbz#1827623