Bug 2218240 - python-dateutil: Python tarfile extraction needs change to avoid a warning (CVE-2007-4559 mitigation)
Summary: python-dateutil: Python tarfile extraction needs change to avoid a warning (C...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: python-dateutil
Version: 8.9
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Python Maintainers
QA Contact: RHEL CS Apps Subsystem QE
URL:
Whiteboard:
Depends On: CVE-2007-4559
Blocks: 2217902 2218234 2217897
TreeView+ depends on / blocked
 
Reported: 2023-06-28 14:09 UTC by Charalampos Stratakis
Modified: 2023-06-30 09:53 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of: 2203905
Environment:
Last Closed: 2023-06-30 09:51:39 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHELPLAN-161312 0 None None None 2023-06-30 09:53:42 UTC

Description Charalampos Stratakis 2023-06-28 14:09:57 UTC
+++ This bug was initially created as a clone of Bug #2203905 +++

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.

--- Additional comment from Petr Viktorin on 2023-06-27 17:32:36 CEST ---

Upstream is removing tarfile handling, so they rejected the patch. But we should backport it to existing releases.

Comment 1 Petr Viktorin 2023-06-30 09:51:39 UTC
The RHEL8 version of dateutil doesn't use the affected API. It extracts to memory and loads a JSON from there.


Note You need to log in before you can comment on or make changes to this bug.