jaraco.context Has a Path Traversal Vulnerability
Published Jan 20, 2026
8.6
HIGHCVSS 3.1
EPSS 0.62%
Description
jaraco.context, an open-source software package that provides some useful decorators and context managers, has a Zip Slip path traversal vulnerability in the `jaraco.context.tarball()` function starting in version 5.2.0 and prior to version 6.1.0. The vulnerability may allow attackers to extract files outside the intended extraction directory when malicious tar archives are processed. The strip_first_component filter splits the path on the first `/` and extracts the second component, while allowing `../` sequences. Paths like `dummy_dir/../../etc/passwd` become `../../etc/passwd`. Note that this suffers from a nested tarball attack as well with multi-level tar files such as `dummy_dir/inner.tar.gz`, where the inner.tar.gz includes a traversal `dummy_dir/../../config/.env` that also gets translated to `../../config/.env`. Version 6.1.0 contains a patch for the issue.
Affected products
-
- Version >= 5.2.0, < 6.1.0StatusaffectedConstraints-
- Version
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Jaraco | Jaraco.context | n/a |
|
- ≥ 5.2.0 · < 6.1.0
No data.
No Red Hat product state for this CVE.
No package ranges for this CVE.
Remediation
Red Hat statement
This vulnerability is rated Important for Red Hat products that utilize `jaraco.context` versions prior to 6.1.0 and process untrusted tar archives. A path traversal flaw in the `jaraco.context.tarball()` function allows attackers to extract files outside the intended directory due to improper handling of `../` sequences, including in nested tarballs. This could lead to arbitrary file write.
Red Hat mitigation
The vulnerability arises from processing untrusted tar archives. To mitigate the risk, Red Hat recommends avoiding the processing of tar archives from untrusted sources. If processing untrusted archives is unavoidable, ensure that the environment where `jaraco.context.tarball()` is used is isolated and has minimal privileges.
References (10)
- https://access.redhat.com/security/cve/CVE-2026-23949 Vendor Advisory
- https://bugzilla.redhat.com/show_bug.cgi?id=2431026 Issue Tracking
- https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-3592 Advisory
- https://github.com/advisories/GHSA-58pv-8j8x-9vj2 Advisory
- https://github.com/jaraco/jaraco.context/blob/main/jaraco/context/__init__.py#L74-L91 x_refsource_MISCPatch
- https://github.com/jaraco/jaraco.context/commit/7b26a42b525735e4085d2e994e13802ea339d5f9 x_refsource_MISCPatch
- https://github.com/jaraco/jaraco.context/security/advisories/GHSA-58pv-8j8x-9vj2 x_refsource_CONFIRMExploitMitigationVendor Advisory
- https://github.com/pypa/setuptools/blob/main/setuptools/_vendor/jaraco/context.py#L55-L76 x_refsource_MISCPatch
- https://nvd.nist.gov/vuln/detail/CVE-2026-23949
- https://www.cve.org/CVERecord?id=CVE-2026-23949
| Link | Providers | Tags |
|---|---|---|
| https://access.redhat.com/security/cve/CVE-2026-23949 | Vendor Advisory | |
| https://bugzilla.redhat.com/show_bug.cgi?id=2431026 | Issue Tracking | |
| https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-3592 | Advisory | |
| https://github.com/advisories/GHSA-58pv-8j8x-9vj2 | Advisory | |
| https://github.com/jaraco/jaraco.context/blob/main/jaraco/context/__init__.py#L74-L91 | x_refsource_MISCPatch | |
| https://github.com/jaraco/jaraco.context/commit/7b26a42b525735e4085d2e994e13802ea339d5f9 | x_refsource_MISCPatch | |
| https://github.com/jaraco/jaraco.context/security/advisories/GHSA-58pv-8j8x-9vj2 | x_refsource_CONFIRMExploitMitigationVendor Advisory | |
| https://github.com/pypa/setuptools/blob/main/setuptools/_vendor/jaraco/context.py#L55-L76 | x_refsource_MISCPatch | |
| https://nvd.nist.gov/vuln/detail/CVE-2026-23949 | ||
| https://www.cve.org/CVERecord?id=CVE-2026-23949 |
Change history (0)
No recorded changes yet.