Advisory Database
  • Advisories
  • Dependency Scanning
  1. pypi
  2. ›
  3. jaraco.context
  4. ›
  5. CVE-2026-23949

CVE-2026-23949: jaraco.context Has a Path Traversal Vulnerability

January 13, 2026 (updated January 22, 2026)

There is a Zip Slip path traversal vulnerability in the jaraco.context package affecting setuptools as well, in jaraco.context.tarball() function. 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.

The code can be found:

  • https://github.com/jaraco/jaraco.context/blob/main/jaraco/context/__init__.py#L74-L91
  • https://github.com/pypa/setuptools/blob/main/setuptools/_vendor/jaraco/context.py#L55-L76 (inherited)

This report was also sent to setuptools maintainers and they asked some questions regarding this.

The lengthy answer is:

The vulnerability seems to be the strip_first_component filter function, not the tarball function itself and has the same behavior on any tested Python version locally (from 11 to 14, as I noticed that there is a backports conditional for the tarball). The stock tarball for Python 3.12+ is considered not vulnerable (until proven otherwise 😄) but here the custom filter seems to overwrite the native filtering and introduces the issue - while overwriting the updated secure Python 3.12+ behavior and giving a false sense of sanitization.

The short answer is:

If we are talking about Python < 3.12 the tarball and jaraco implementations / behaviors are relatively the same but for Python 3.12+ the jaraco implementation overwrites the native tarball protection.

Sampled tests:

References

  • github.com/advisories/GHSA-58pv-8j8x-9vj2
  • github.com/jaraco/jaraco.context
  • github.com/jaraco/jaraco.context/blob/main/jaraco/context/__init__.py
  • github.com/jaraco/jaraco.context/commit/7b26a42b525735e4085d2e994e13802ea339d5f9
  • github.com/jaraco/jaraco.context/security/advisories/GHSA-58pv-8j8x-9vj2
  • github.com/pypa/setuptools/blob/main/setuptools/_vendor/jaraco/context.py
  • nvd.nist.gov/vuln/detail/CVE-2026-23949

Code Behaviors & Features

Detect and mitigate CVE-2026-23949 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions starting from 5.2.0 before 6.1.0

Fixed versions

  • 6.1.0

Solution

Upgrade to version 6.1.0 or above.

Impact 8.6 HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N

Learn more about CVSS

Weakness

  • CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Source file

pypi/jaraco.context/CVE-2026-23949.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Wed, 04 Feb 2026 00:35:27 +0000.