Skip to main content

proot-distro CVE-2026-54574

| EUVDEUVD-2026-50408 HIGH
UNIX Symbolic Link (Symlink) Following (CWE-61)
2026-07-29 GitHub_M GHSA-9xq3-3fqg-4vg7
8.2
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
8.2 HIGH
AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
vuln.today AI
8.2 HIGH

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.

3.1 AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
4.0 AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

4
Patch available
Jul 29, 2026 - 17:02 EUVD
Source Code Evidence Fetched
Jul 29, 2026 - 17:01 vuln.today
Analysis Generated
Jul 29, 2026 - 17:01 vuln.today
CVE Published
Jul 29, 2026 - 16:32 cve.org
HIGH 8.2

DescriptionCVE.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.

AnalysisAI

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.

Technical ContextAI

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.

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.

More in Docker

View all
CVE-2024-55964 CRITICAL POC
9.8 Mar 26

An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl

CVE-2019-5736 HIGH POC
8.6 Feb 11

runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac

CVE-2023-32077 HIGH POC
7.5 Aug 24

Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2023-5815 HIGH POC
8.1 Nov 22

The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post

CVE-2026-66384 MEDIUM POC
5.3 Aug 12

Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten

CVE-2014-9357 CRITICAL
10.0 Dec 16

Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build

CVE-2026-52806 CRITICAL POC
9.9 Jun 23

Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config

CVE-2026-56274 HIGH POC
8.7 Jun 23

Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per

CVE-2026-34156 CRITICAL POC
9.9 Mar 30

Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l

CVE-2019-15752 HIGH POC
7.8 Aug 28

Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c

CVE-2025-34221 CRITICAL POC
10.0 Sep 29

Vasion Print (formerly PrinterLogic) Virtual Appliance Host prior to version 25.2.169 and Application prior to version 2

Share

CVE-2026-54574 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy