Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious rootfs tarball or Docker layer
-
DeliveryDistribute and lure user to install it
-
Exploitproot-distro install plants absolute-path symlink from linkname
-
ExecutionFollow-up member written through symlink
-
ImpactArbitrary file written onto host filesystem
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling UNIX symlink resolution
|
| Exploitation Conditions | Requires the victim to install/reset/restore an attacker-supplied malicious archive: a plain rootfs tarball (via _extract_plain_tar in commands/install.py) or a Docker/OCI layer (via _apply_layer in helpers/docker.py) containing a symlink member whose linkname is an absolute host path (e.g. /data/data/com.termux/files/home) or a traversal target, immediately followed by a regular-file member whose path routes through that planted symlink name. Limiting factors: exploitation is local and cannot be triggered remotely without user action - the user must actively obtain and run |
| Impact | The supplied CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N, base 8.2) is internally consistent with the description: exploitation is local (the victim must obtain and install an attacker-supplied archive), requires user interaction (running install/reset/restore on that archive), needs no prior privileges, and the scope change reflects the write escaping the container onto the host. This is a genuine integrity risk (arbitrary host file write) rather than a remote mass-exploitation issue - the AV:L/UI:R gating makes it a social-engineering / supply-chain-of-rootfs problem, not a wormable network bug, so raw 8.2 overstates internet-facing urgency while accurately reflecting host compromise potential once a user is tricked. No EPSS score, KEV entry, POC, or SSVC decision was provided, so automatability and exploitation-status signals are UNKNOWN and cannot be cross-referenced. The 'Information Disclosure' tag plus the hardlink-copy vector (copying host files into the rootfs) suggests confidentiality impact is plausible, supporting C:H, though the primary demonstrated impact is host file write (integrity). |
| Exploit ScenarioDerived | An attacker publishes a tampered distribution rootfs tarball (or Docker layer) on a mirror, forum, or shared link and convinces a Termux user to install it with |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 29, 2026
Arbitrary host file write in termux/proot-distro before 5.1.5 lets a malicious rootfs tarball or Docker layer plant an absolute-path symlink during proot-distro install, so a follow-up file member is written through that symlink onto the host filesystem - outside the container, before it is ever run. The install/reset paths (_extract_plain_tar) and the Docker layer path (_apply_layer) validated member names for '..' traversal but never validated symlink targets in member.linkname. No public exploit identified at time of analysis and it is not in CISA KEV, but the flaw is confirmed and fully described by the vendor GHSA advisory with vulnerable source shown.
RemediationAI
Vendor-released patch: upgrade to proot-distro 5.1.5 (pip install --upgrade proot-distro, or update via your Termux package source), which adds clamped symlink/hardlink resolution (_safe_resolve/_safe_dest) across the install, reset, restore, and build-engine extraction paths - see the fix commit https://github.com/termux/proot-distro/commit/a96d7a9667f38e45d812614852ee3915d1c0ae45, advisory https://github.com/termux/proot-distro/security/advisories/GHSA-9xq3-3fqg-4vg7, and release https://github.com/termux/proot-distro/releases/tag/v5.1.5. Until upgraded, the concrete compensating control is to only install rootfs tarballs and Docker/OCI images from trusted, integrity-verified sources (verify checksums/signatures) and avoid running proot-distro install, reset, or restore on archives from untrusted third parties; if you must inspect an unknown archive, extract it inside a disposable sandbox or unprivileged container first and audit for symlink members with absolute or traversal targets (e.g. tar -tvf listing link targets). The trade-off is that source-trust vetting is manual and does not protect against a compromised upstream mirror, so upgrading to 5.1.5 is strongly preferred over the workaround.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
proot-distro is a Termux/Android utility that installs and manages proot (unprivileged chroot-like) Linux distributions by unpacking rootfs tarballs and OCI/Docker image layers into a target directory. The root cause is CWE-61 (UNIX Symbolic Link Following): the extractor honored archive-controlled symlink targets verbatim via os.symlink(member.linkname, dest) with no clamp inside the destination root. The pre-existing guard only rejected '..'/'' components in the member name (rel_parts), leaving both absolute symlink targets and traversal via linkname unchecked. Because a symlink is materialized before a later regular-file member that references its name, Python's open() follows the planted symlink and writes outside rootfs_dir. The fix introduces helpers/tar_extract.py._safe_resolve/_safe_dest, which re-resolves each destination's parent through existing symlink components while clamping every hop inside the rootfs (re-rooting absolute targets to the guest '/'), and applies the same clamped resolution to hardlink source endpoints in restore.py and build_engine/copy_step.py.
Know when Docker gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
Local because the victim must run install on an attacker-supplied archive (AV:L/UI:R), no prior privileges needed (PR:N), and the host-filesystem write escapes the container (S:C) yielding high confidentiality/integrity impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
proot-distro is a utility for managing proot containers. Prior to version 5.1.5, proot-distro install extracted plain tarball root filesystems through _extract_plain_tar() in proot_distro/commands/install.py and Docker layers through _apply_layer() in proot_distro/helpers/docker.py without validating archive-controlled symlink targets in member.linkname, allowing a malicious archive to plant an absolute host-path symlink and write files through it onto the host filesystem. This issue is fixed in version 5.1.5.
Articles & Coverage 1
Executive ViewAI
A critical vulnerability in termux/proot-distro before version 5.1.5 allows arbitrary file writes to the host filesystem during container installation through malicious rootfs tarballs or Docker layers. Organizations deploying containerized workloads via proot-distro face potential complete system compromise if untrusted container images are installed, requiring immediate source validation and installation controls.
No vendor-released patch identified at time of analysis. Implement the following interim mitigations: (1) restrict proot-distro installations to organization-approved, digitally-signed container images only; (2) implement pre-extraction symlink target validation to reject members with absolute-path or traversal symlinks; (3) run proot-distro processes in restricted environments with mandatory filesystem access controls preventing writes outside designated container directories; (4) deploy endpoint detection and response (EDR) monitoring to alert on unexpected file writes to host system paths; (5) maintain detailed audit logs of all container installation attempts for forensic investigation.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac
Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post
Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten
Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build
Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config
Unauthenticated remote command injection in SGWBOX N3 firmware 2.0.25 lets attackers execute arbitrary operating-system
Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per
Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l
Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c
EUVD-2026-50408
GHSA-9xq3-3fqg-4vg7
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB