CVE-2026-23949
High · 8.6CVSS
8.6
EPSS
0.6%
Published
Jan 20, 2026
CISA due date
—
The record
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 packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| PyPI | jaraco-context | 5.2.0 | 6.1.0 |
| Chainguard | airflow-2 | 0 | 2.11.0-r22 |
| Chainguard | airflow-3 | 0 | 3.1.6-r1 |
| Chainguard | airflow-3 | 0 | 3.1.6-r2 |
| Chainguard | ansible-operator | 0 | 1.42.0-r6 |
| Chainguard | ansible-operator-fips | 0 | 1.42.0-r4 |
| Chainguard | apache-beam-python-3.11-sdk | 0 | 2.71.0-r0 |
| Chainguard | authentik | 0 | 2025.12.1-r2 |
| Chainguard | authentik-fips | 0 | 2025.12.1-r2 |
| Chainguard | awx | 0 | 24.6.1-r25 |
| Chainguard | dask-kubernetes | 0 | 2025.7.0-r6 |
| Chainguard | datadog-agent-7.71 | 0 | 7.71.2-r8 |
| Chainguard | datadog-agent-7.72 | 0 | 7.72.4-r7 |
| Chainguard | datadog-agent-7.73 | 0 | 7.73.3-r3 |
| Chainguard | datadog-agent-7.74 | 0 | 7.74.1-r4 |
| Chainguard | datadog-agent-7.74-core-integrations | 0 | 7.74.1-r4 |
| Chainguard | datadog-agent-fips-7.71 | 0 | 7.71.2-r6 |
| Chainguard | datadog-agent-fips-7.72 | 0 | 7.72.4-r4 |
| Chainguard | datadog-agent-fips-7.73 | 0 | 7.73.3-r2 |
| Chainguard | datadog-agent-fips-7.74 | 0 | 7.74.1-r3 |
| Chainguard | datadog-agent-fips-7.74-core-integrations | 0 | 7.74.1-r3 |
| Chainguard | katib-earlystopping | 0 | 0.19.0-r4 |
| Chainguard | katib-suggestion-hyperband | 0 | 0.19.0-r4 |
| Chainguard | katib-suggestion-hyperopt | 0 | 0.19.0-r4 |
| Chainguard | katib-suggestion-nas-darts | 0 | 0.19.0-r4 |
| Chainguard | katib-suggestion-optuna-enas | 0 | 0.19.0-r4 |
| Chainguard | katib-suggestion-pbt-enas | 0 | 0.19.0-r4 |
| Chainguard | katib-suggestion-skopt-enas | 0 | 0.19.0-r4 |
| Chainguard | kserve-storage-controller | 0 | 0.16.0-r11 |
| Chainguard | kubeflow-jupyter-web-app | 0 | 1.10.0-r10 |
| Chainguard | label-studio | 0 | 1.22.0-r2 |
| Chainguard | localstack | 0 | 4.12.0-r4 |
| Chainguard | mlflow | 0 | 3.8.1-r3 |
| Chainguard | mlflow-iamguarded-compat | 0 | 3.8.1-r3 |
| Chainguard | nemo | 0 | 2.6.1-r2 |
| Chainguard | opal | 0 | 0.9.3-r0 |
| Chainguard | open-webui | 0 | 0.7.2-r1 |
| Chainguard | pgadmin4 | 0 | 9.11-r2 |
| Chainguard | py3-cassandra-medusa | 0 | 0.27.0-r2 |
| Chainguard | py3-semgrep | 0 | 1.149.0-r0 |
| Chainguard | py3.10-ambassador | 0 | 3.10.0-r19 |
| Chainguard | py3.10-duplicity | 0 | 3.0.7-r2 |
| Chainguard | py3.10-setuptools | 0 | 80.10.1-r0 |
| Chainguard | py3.11-ambassador | 0 | 3.10.0-r19 |
| Chainguard | py3.11-azure-functions-worker | 0 | 4.42.0-r0 |
| Chainguard | py3.11-duplicity | 0 | 3.0.7-r2 |
| Chainguard | py3.11-setuptools | 0 | 80.10.1-r0 |
| Chainguard | py3.11-text-generation-inference | 0 | 3.3.7-r6 |
| Chainguard | py3.12-ambassador | 0 | 3.10.0-r19 |
| Chainguard | py3.12-azure-functions-worker | 0 | 4.42.0-r0 |
| Chainguard | py3.12-duplicity | 0 | 3.0.7-r2 |
| Chainguard | py3.12-setuptools | 0 | 80.10.1-r0 |
| Chainguard | py3.13-ambassador | 0 | 3.10.0-r19 |
| Chainguard | py3.13-azure-functions-worker | 0 | 4.42.0-r0 |
| Chainguard | py3.13-duplicity | 0 | 3.0.7-r2 |
| Chainguard | py3.13-setuptools | 0 | 80.10.1-r0 |
| Chainguard | py3.14-setuptools | 0 | 80.10.1-r0 |
| Chainguard | py3.9-setuptools | 0 | 80.10.2-r0 |
| Chainguard | pypy-3.10 | 0 | 7.3.19-r14 |
| Chainguard | pypy-3.11 | 0 | 7.3.20-r5 |
| Chainguard | request-1276 | 0 | 0.27.0-r4 |
| Chainguard | spamcheck | 0 | 3.5.3-r6 |
| Chainguard | superset-5.0 | 0 | 5.0.0-r14 |
| Chainguard | superset-6.0 | 0 | 6.0.0-r1 |
| Chainguard | tensorflow-cpu-jupyter | 0 | 2.20.0-r9 |
| Chainguard | tensorflow-gpu-jupyter | 0 | 2.20.0-r8 |
| Chainguard | tritonserver-backend-vllm-cuda-12.9 | 0 | 25.9.0_git20251112-r6 |
| Wolfi | airflow-3 | 0 | 3.1.6-r1 |
| Wolfi | airflow-3 | 0 | 3.1.6-r2 |
| Wolfi | ansible-operator | 0 | 1.42.0-r6 |
| Wolfi | dask-kubernetes | 0 | 2025.7.0-r6 |
| Wolfi | datadog-agent-7.72 | 0 | 7.72.4-r7 |
| Wolfi | datadog-agent-7.73 | 0 | 7.73.3-r3 |
| Wolfi | datadog-agent-7.74 | 0 | 7.74.1-r4 |
| Wolfi | datadog-agent-7.74-core-integrations | 0 | 7.74.1-r4 |
| Wolfi | katib-earlystopping | 0 | 0.19.0-r4 |
| Wolfi | katib-suggestion-hyperband | 0 | 0.19.0-r4 |
| Wolfi | katib-suggestion-hyperopt | 0 | 0.19.0-r4 |
| Wolfi | katib-suggestion-nas-darts | 0 | 0.19.0-r4 |
| Wolfi | katib-suggestion-optuna-enas | 0 | 0.19.0-r4 |
| Wolfi | katib-suggestion-pbt-enas | 0 | 0.19.0-r4 |
| Wolfi | katib-suggestion-skopt-enas | 0 | 0.19.0-r4 |
| Wolfi | kserve-storage-controller | 0 | 0.16.0-r11 |
| Wolfi | kubeflow-jupyter-web-app | 0 | 1.10.0-r10 |
| Wolfi | mlflow | 0 | 3.8.1-r3 |
| Wolfi | mlflow-iamguarded-compat | 0 | 3.8.1-r3 |
| Wolfi | open-webui | 0 | 0.7.2-r1 |
| Wolfi | py3-cassandra-medusa | 0 | 0.27.0-r2 |
| Wolfi | py3-semgrep | 0 | 1.149.0-r0 |
| Wolfi | py3.10-ambassador | 0 | 3.10.0-r19 |
| Wolfi | py3.10-setuptools | 0 | 80.10.1-r0 |
| Wolfi | py3.11-ambassador | 0 | 3.10.0-r19 |
| Wolfi | py3.11-setuptools | 0 | 80.10.1-r0 |
| Wolfi | py3.12-ambassador | 0 | 3.10.0-r19 |
| Wolfi | py3.12-setuptools | 0 | 80.10.1-r0 |
| Wolfi | py3.13-ambassador | 0 | 3.10.0-r19 |
| Wolfi | py3.13-setuptools | 0 | 80.10.1-r0 |
| Wolfi | py3.14-setuptools | 0 | 80.10.1-r0 |
| Wolfi | pypy-3.10 | 0 | 7.3.19-r14 |
| Wolfi | pypy-3.11 | 0 | 7.3.20-r5 |
| Wolfi | superset-5.0 | 0 | 5.0.0-r14 |
| Wolfi | superset-6.0 | 0 | 6.0.0-r1 |
| Wolfi | tensorflow-cpu-jupyter | 0 | 2.20.0-r9 |
| openSUSE:Leap 16.0 | python-jaraco.context | 0 | 5.3.0-160000.3.1 |
| openSUSE:Tumbleweed | python-jaraco.context | 0 | 6.1.0-1.1 |
| pypi | jaraco.context | 5.2.0 | No fix |
Related vulnerabilities
- CVE-2026-4539 A security flaw has been discovered in pygments up to 2.19.2. Also affects airflow-2
- CVE-2026-30922 pyasn1 is a generic ASN.1 library for Python. Also affects airflow-2
- CVE-2026-27448 pyOpenSSL is a Python wrapper around the OpenSSL library. Also affects airflow-2
- CVE-2026-27459 pyOpenSSL is a Python wrapper around the OpenSSL library. Also affects airflow-2
- CVE-2026-32597 PyJWT is a JSON Web Token implementation in Python. Also affects airflow-2
- CVE-2026-31958 Tornado is a Python web framework and asynchronous networking library. Also affects airflow-2
- CVE-2026-25604 In AWS Auth manager, the origin of the SAML authentication has been used as provided by… Also affects airflow-2
- CVE-2025-69219 A user with access to the DB could craft a database entry that would result in executing… Also affects airflow-2