[CLSA-2026:1790681692] alt-python39: Fix of 2 CVEs
Type:
security
Severity:
Moderate
Release date:
2026-09-29 11:35:04 UTC
Description:
- CVE-2026-87910: tarfile ignored a filter's None ("skip this member") answer in the hard-link extraction fallback (CWE-59). The guard CVE-2026-11940 added to TarFile.makelink_with_filter() re-runs the filter on the referenced member re-rooted at the link's own, shallower name, but only reacted to the exceptions that extra call could raise and discarded its return value. A PEP 706 filter may also return None to mean "skip this member"; that answer was ignored, the second call made with the member's own name still succeeded, and the member was written at the link's path anyway - so a filter that downgrades FilterError to None did not stop the escape CVE-2026-11940 was meant to close. - debian/patches/CVE-2026-87910.patch: backport of cpython 9c17bace90f88dfba6d0e2fe23c8e7ae35f83955 (gh-157265), which keeps the first filter call's result and returns early when it is None, plus its regression test test_extract_filters_target_none. Applied after CVE-2026-11940.patch, whose guard it fixes; the two must not be separated or reordered. - CVE-2026-19672: tarfile 'tar'/'data' extraction filters created directories outside the destination for a member whose name leaves the destination and comes back (CWE-22). _get_filtered_attrs() checks containment on the resolved path, so a name such as '../evil/../dest/sub/file' passes, but the intermediate directories are created from the name as given and walk out of the destination on the way, leaving attacker-chosen directories next to it. POSIX only. - debian/patches/CVE-2026-19672.patch: backport of cpython 97688346ada2df3e5b9c279348862c3d64ab0823 (gh-155999), which normalizes a member name containing a '..' component before the containment check, plus its regression test test_parent_dir_out_and_back. Applied after CVE-2026-87910.patch.
Updated packages:
  • alt-python39-3.9.23-29.el7.x86_64.rpm
    sha:b021240eb1ac688cc3d297e74ae1276a3abf98a696d1f4d3f52c439aa8d16567
  • alt-python39-debug-3.9.23-29.el7.x86_64.rpm
    sha:6ac20a3d4dff4845496094efc4b2c6a6e665d89dcd2a14185a381e52c0bbc413
  • alt-python39-devel-3.9.23-29.el7.x86_64.rpm
    sha:ab0bcb32c7c31ff0e6974326a830cb844d46d96c1c6b25d00ecabb7e3b82b737
  • alt-python39-idle-3.9.23-29.el7.x86_64.rpm
    sha:4c9158c807408f8f7d01dec5d4263886356870c4e37bd1aed6c21729232ff049
  • alt-python39-libs-3.9.23-29.el7.x86_64.rpm
    sha:5c4c032933fb1318cba816c545451c6635ed2331ae76f9cffc7c16b58d4df2b5
  • alt-python39-test-3.9.23-29.el7.x86_64.rpm
    sha:7b59b5b6b8adcf24bbf1c6540f7d73d78b13c566f417bb6e5a3a7a753b5b39c4
  • alt-python39-tkinter-3.9.23-29.el7.x86_64.rpm
    sha:c7d7ce73daa36e721af4b15c809fa4379705bd663b4824fbf65ae8689d1ae99d
Notes:
This page is generated automatically and has not been checked for errors. For clarification or corrections please contact the CloudLinux Packaging Team.