From a291386e631a2689d608a280b0ce0894e102cf83 Mon Sep 17 00:00:00 2001 From: wangxiaomeng Date: Thu, 1 Aug 2024 20:15:15 +0800 Subject: [PATCH] update to 3.19.2 --- backport-CVE-2024-5569.patch | 110 ----------------------------------- python-zipp.spec | 14 +++-- zipp-3.18.1.tar.gz | Bin 21220 -> 0 bytes zipp-3.19.2.tar.gz | Bin 0 -> 22922 bytes 4 files changed, 10 insertions(+), 114 deletions(-) delete mode 100644 backport-CVE-2024-5569.patch delete mode 100644 zipp-3.18.1.tar.gz create mode 100644 zipp-3.19.2.tar.gz diff --git a/backport-CVE-2024-5569.patch b/backport-CVE-2024-5569.patch deleted file mode 100644 index e2fc422..0000000 --- a/backport-CVE-2024-5569.patch +++ /dev/null @@ -1,110 +0,0 @@ -From fd604bd34f0343472521a36da1fbd22e793e14fd Mon Sep 17 00:00:00 2001 -From: "Jason R. Coombs" -Date: Fri, 31 May 2024 12:31:40 -0400 -Subject: [PATCH] Merge pull request #120 from jaraco/bugfix/119-malformed-paths - - Sanitize malformed paths - ---- - tests/test_path.py | 18 +++++++++++ - zipp/__init__.py | 58 +++++++++++++++++++++++++++++++++++- - 2 files changed, 75 insertions(+), 1 deletion(-) - -diff --git a/tests/test_path.py b/tests/test_path.py -index 03fd2aa..53664d4 100644 ---- a/tests/test_path.py -+++ b/tests/test_path.py -@@ -574,3 +574,21 @@ class TestPath(unittest.TestCase): - zipp.Path(alpharep) - with self.assertRaises(KeyError): - alpharep.getinfo('does-not-exist') -+ -+ @__import__('pytest').mark.skip(reason="infinite loop") -+ def test_malformed_paths(self): -+ """ -+ Path should handle malformed paths. -+ """ -+ data = io.BytesIO() -+ zf = zipfile.ZipFile(data, "w") -+ zf.writestr("/one-slash.txt", b"content") -+ zf.writestr("//two-slash.txt", b"content") -+ zf.writestr("../parent.txt", b"content") -+ zf.filename = '' -+ root = zipfile.Path(zf) -+ assert list(map(str, root.iterdir())) == [ -+ 'one-slash.txt', -+ 'two-slash.txt', -+ 'parent.txt', -+ ] -diff --git a/zipp/__init__.py b/zipp/__init__.py -index 6d05d9a..f78c272 100644 ---- a/zipp/__init__.py -+++ b/zipp/__init__.py -@@ -85,7 +85,63 @@ class InitializedState: - super().__init__(*args, **kwargs) - - --class CompleteDirs(InitializedState, zipfile.ZipFile): -+class SanitizedNames: -+ """ -+ ZipFile mix-in to ensure names are sanitized. -+ """ -+ -+ def namelist(self): -+ return list(map(self._sanitize, super().namelist())) -+ -+ @staticmethod -+ def _sanitize(name): -+ r""" -+ Ensure a relative path with posix separators and no dot names. -+ Modeled after -+ https://github.com/python/cpython/blob/bcc1be39cb1d04ad9fc0bd1b9193d3972835a57c/Lib/zipfile/__init__.py#L1799-L1813 -+ but provides consistent cross-platform behavior. -+ >>> san = SanitizedNames._sanitize -+ >>> san('/foo/bar') -+ 'foo/bar' -+ >>> san('//foo.txt') -+ 'foo.txt' -+ >>> san('foo/.././bar.txt') -+ 'foo/bar.txt' -+ >>> san('foo../.bar.txt') -+ 'foo../.bar.txt' -+ >>> san('\\foo\\bar.txt') -+ 'foo/bar.txt' -+ >>> san('D:\\foo.txt') -+ 'D/foo.txt' -+ >>> san('\\\\server\\share\\file.txt') -+ 'server/share/file.txt' -+ >>> san('\\\\?\\GLOBALROOT\\Volume3') -+ '?/GLOBALROOT/Volume3' -+ >>> san('\\\\.\\PhysicalDrive1\\root') -+ 'PhysicalDrive1/root' -+ >>> san('abc/') -+ 'abc/' -+ >>> san('../..') -+ Traceback (most recent call last): -+ ... -+ ValueError: Empty filename -+ """ -+ -+ def allowed(part): -+ return part and part not in {'..', '.'} -+ -+ # Remove the drive letter. -+ # Don't use ntpath.splitdrive, because that also strips UNC paths -+ bare = re.sub('^([A-Z]):', r'\1', name, flags=re.IGNORECASE) -+ clean = bare.replace('\\', '/') -+ parts = clean.split('/') -+ joined = '/'.join(filter(allowed, parts)) -+ if not joined: -+ raise ValueError("Empty filename") -+ return joined + '/' * name.endswith('/') -+ -+ -+class CompleteDirs(InitializedState, SanitizedNames, zipfile.ZipFile): - """ - A ZipFile subclass that ensures that implied directories - are always included in the namelist. --- -2.43.0 - diff --git a/python-zipp.spec b/python-zipp.spec index 0241bfb..3534ea8 100644 --- a/python-zipp.spec +++ b/python-zipp.spec @@ -1,12 +1,11 @@ %global _empty_manifest_terminate_build 0 Name: python-zipp -Version: 3.18.1 -Release: 2 +Version: 3.19.2 +Release: 1 Summary: Backport of pathlib-compatible object wrapper for zip files License: MIT URL: https://github.com/jaraco/zipp -Source0: https://pypi.io/packages/source/z/zipp/zipp-%{version}.tar.gz -Patch3000: backport-CVE-2024-5569.patch +Source0: https://files.pythonhosted.org/packages/d3/20/b48f58857d98dcb78f9e30ed2cfe533025e2e9827bbd36ea0a64cc00cbc1/zipp-3.19.2.tar.gz BuildArch: noarch %description @@ -25,6 +24,8 @@ BuildRequires: python3-toml BuildRequires: python3-pytest BuildRequires: python3-more-itertools BuildRequires: python3-jaraco-functools +BuildRequires: python-jaraco.test +BuildRequires: python-zipp BuildRequires: shadow %description -n python3-zipp A pathlib-compatible Zipfile object wrapper. A backport of the Path object. @@ -66,6 +67,11 @@ pytest -k "not test_joinpath_constant_time" %{_docdir}/* %changelog +* Thu Aug 1 2024 wangxiaomeng - 3.19.2-1 +- update to 3.19.2 + - Improved handling of malformed zip files. (#119) + - Implement is_symlink. (#117) + * Tue Jul 09 2024 zhangxianting - 3.18.1-2 - Fix CVE-2024-5569 diff --git a/zipp-3.18.1.tar.gz b/zipp-3.18.1.tar.gz deleted file mode 100644 index 2b6bbc231fb0407affce0b9785d2715be4680854..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21220 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 W{y%4>1HVta{&%j{hQ#a|$-e-naxISl diff --git a/zipp-3.19.2.tar.gz b/zipp-3.19.2.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..7838ae0369c113528ebe079a08186593702f7b2e GIT binary patch literal 22922 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