Bug 2203905

Summary: python-dateutil: Python tarfile extraction needs change to avoid a warning (CVE-2007-4559 mitigation)
Product: Red Hat Enterprise Linux 9 Reporter: Petr Viktorin (pviktori) <pviktori>
Component: python-dateutilAssignee: Charalampos Stratakis <cstratak>
Status: CLOSED ERRATA QA Contact: Lukáš Zachar <lzachar>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.0CC: torsava
Target Milestone: rcKeywords: Triaged
Target Release: ---Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-dateutil-2.8.1-7.el9 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of:
: 2218240 (view as bug list) Environment:
Last Closed: 2023-11-07 08:55:56 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 263261    
Deadline: 2023-08-21   

Description Petr Viktorin (pviktori) 2023-05-15 14:51:12 UTC
Hello,
In RHEL 9.3 and 8.9, we're planning to fix the long-standing CVE-2007-4559: Python's `tarfile` module makes it too easy to extract tarballs in an unsafe way.
Unfortunately, for the CVE to be considered fixed, this needs a behavior change. (If you don't think this is the case, let's bring it up with the security team.)
Upstream, Python will emit deprecation warnings for 2 releases, but in RHEL we change the behavior now, emit warnings, and provide ways for customers to restore earlier behavior.
To avoid the warning, software shipped by Red Hat will need a change.

For more details see upstream PEP 706: https://peps.python.org/pep-0706
and the Red Hat knowledge base draft: https://access.redhat.com/articles/7004769

---

/usr/lib/python3.9/site-packages/dateutil/zoneinfo/rebuild.py has a tarfile extraction call that'll need changing from:

                tf.extract(name, tmpdir)

to something like:

if hasattr(tarfile, 'data_filter'):
    # Python with CVE-2007-4559 mitigation (PEP 706)
    tf.extract(name, tmpdir, filter='data')
else:
    # Fallback to a possibly dangerous extraction (before PEP 706)
    tf.extract(name, tmpdir)


Or just add the filter='data' if we can coordinate updates.

Comment 1 Petr Viktorin (pviktori) 2023-06-27 15:32:36 UTC
Upstream is removing tarfile handling, so they rejected the patch. But we should backport it to existing releases.

Comment 2 Petr Viktorin (pviktori) 2023-07-13 17:41:00 UTC
Χάρης, if you get to it, could you push this over the finish line?

Comment 4 Charalampos Stratakis 2023-08-06 23:56:30 UTC
Everything looks good. Sanity checked the code and this is coming from the author of the upstream PEP.

Comment 9 errata-xmlrpc 2023-11-07 08:55:56 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (python-dateutil bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:6691