VYPR
Medium severity5.3NVD Advisory· Published Jun 17, 2026

Path Traversal (Zip-Slip) in unarchive module

CVE-2026-12565

Description

The unarchive internal module's archive extraction commands perform no code-level validation on extracted file paths, relying entirely on the behavior of external tools (e.g. GNU tar) which varies by platform. While CVE-2025-10284 addressed git-specific RCE vectors, the underlying archive extraction path traversal was never fixed. On systems with GNU tar < 1.34 (Ubuntu 20.04, Debian Buster, CentOS 7, many Docker base images), a malicious archive can write files outside the intended extraction directory.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

Affected products

1

Patches

Vulnerability mechanics

Root cause

"Archive extraction commands perform no code-level validation on extracted file paths, relying entirely on external tool behavior which varies by platform."

Attack vector

An attacker crafts a malicious archive containing files with path traversal components (e.g. `../../etc/cron.d/malicious`). When the `unarchive` module extracts this archive using an external tool like GNU tar, the tool follows the path traversal entries and writes files outside the intended extraction directory. This is exploitable on systems with GNU tar < 1.34 (Ubuntu 20.04, Debian Buster, CentOS 7, many Docker base images). No authentication or special privileges are required beyond the ability to supply an archive to the bbot tool. [ref_id=1]

Affected code

The vulnerability resides in `bbot/modules/internal/unarchive.py` in the `extract_file` method. The archive extraction commands perform no code-level validation on extracted file paths, relying entirely on the behavior of external tools (e.g. GNU tar) which varies by platform. While CVE-2025-10284 addressed git-specific RCE vectors, the underlying archive extraction path traversal was never fixed. [patch_id=6466805]

What the fix does

The patch adds a size cap (`_max_extracted_size = 1_000_000_000`) and post-extraction size check in `extract_file`. After extraction completes, it sums the sizes of all extracted files; if the total exceeds 1 GB, the output directory is removed and extraction is aborted. This does **not** fix the path traversal itself — it only prevents extraction of overly large archives. The advisory explicitly states that the underlying archive extraction path traversal was never fixed. [patch_id=6466805]

Preconditions

  • configThe target system must use GNU tar < 1.34 (e.g. Ubuntu 20.04, Debian Buster, CentOS 7, many Docker base images).
  • inputAn attacker must supply a malicious archive to the bbot unarchive module.

Generated on Jun 18, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

4

News mentions

0

No linked articles in our index yet.