Path Traversal (Zip-Slip) in unarchive module
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
1Patches
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
4News mentions
0No linked articles in our index yet.