<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Termux - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/termux/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Wed, 29 Jul 2026 16:42:42 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/termux/feed.xml" rel="self" type="application/rss+xml"/><item><title>Proot-Distro Container Isolation Bypass via Crafted Restore Archive</title><link>https://feed.craftedsignal.io/briefs/2026-07-proot-distro-isolation-bypass/</link><pubDate>Wed, 29 Jul 2026 16:42:42 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-proot-distro-isolation-bypass/</guid><description>The proot-distro package fails to validate container boundaries during the restoration of archive files, allowing attackers to perform cross-container file disclosure and injection.</description><content:encoded><![CDATA[<p>The proot-distro utility, commonly used within the Termux environment on Android, contains a critical flaw in its <code>restore</code> command. The vulnerability arises from improper validation of hardlink entries within backup archives. When processing an archive, the utility resolves the <code>linkname</code> from the archive metadata to identify the source path for hardlinks. While the implementation enforces path traversal protections to ensure files remain within the general containers directory, it fails to verify that the source container specified in the hardlink matches the destination container being restored.</p>
<p>This logic error enables an attacker to construct a malicious tar archive that maps hardlinks to arbitrary files in any other installed container. By convincing a user to restore such an archive, an attacker can disclose sensitive data, such as SSH keys or API credentials, from a victim container or inject malicious files into a target container. The vulnerability affects proot-distro version 5.1.5 and is tracked as CVE-2026-54727.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker creates a target victim container using <code>proot-distro install</code> to establish the filesystem structure.</li>
<li>Attacker prepares a malicious archive file using the <code>tarfile</code> Python module to define hardlink metadata.</li>
<li>Attacker sets the <code>linkname</code> attribute of the hardlink to reference sensitive files inside the victim's container path (e.g., <code>/root/.ssh/id_rsa</code>).</li>
<li>Attacker maps the source path of the hardlink to a location inside the attacker's own container or a globally readable directory.</li>
<li>Attacker lures the target user into executing <code>proot-distro restore</code> using the malicious archive.</li>
<li>The <code>restore</code> command processes the hardlink entries, resolving the cross-container reference due to lack of validation.</li>
<li>Attacker accesses the victim's sensitive data now mirrored within the attacker-controlled container filesystem.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows for complete cross-container information disclosure and arbitrary file injection between containers on the same Android host. This impacts the confidentiality and integrity of all user-defined containers within a Termux environment. Attackers can exfiltrate SSH private keys, configuration secrets, database contents, and API credentials, or plant malicious scripts into other containers that may be executed by the victim at a later time.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Upgrade proot-distro to the latest version once the maintainers provide a patch addressing the missing container boundary check.</li>
<li>Implement the logic provided in the brief's &quot;Proposed Fix&quot; to verify that the <code>link_container</code> strictly matches the <code>container_name</code> during restore operations.</li>
<li>Avoid restoring backup archives obtained from untrusted or unverified sources within the Termux environment.</li>
<li>Audit existing container configurations for any unexpected files created by previous restore operations.</li>
</ol>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>container-isolation</category><category>sandbox-escape</category><category>privilege-escalation</category><category>android</category></item><item><title>Arbitrary Host File Write via Symlink Escape in proot-distro</title><link>https://feed.craftedsignal.io/briefs/2026-07-proot-distro-symlink-escape/</link><pubDate>Wed, 29 Jul 2026 16:33:09 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-proot-distro-symlink-escape/</guid><description>The proot-distro utility contains a symlink traversal vulnerability (CVE-2026-54574) that allows malicious tar archives to overwrite arbitrary files on the host filesystem during the installation or reset process.</description><content:encoded><![CDATA[<p>The proot-distro utility (v5.0.2 and earlier) contains a critical path traversal vulnerability caused by insufficient validation of symlink targets during tarball extraction. When extracting a filesystem archive via the <code>install</code> or <code>reset</code> commands, the application incorrectly trusts the <code>linkname</code> property of symbolic links within the archive. An attacker can create a malicious archive containing a symlink pointing to an absolute host path, followed by a file member designed to traverse that symlink.</p>
<p>Because the underlying Python <code>open()</code> call follows these links, the application writes the payload into the host filesystem with the privileges of the Termux user, bypassing the intended rootfs isolation. This allows for the overwriting of shell startup files (such as <code>~/.bashrc</code> or <code>~/.profile</code>), resulting in persistent code execution upon the next shell session. This vulnerability also impacts the <code>helpers/docker.py</code> component via the <code>_apply_layer</code> function.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker crafts a malicious tar archive containing a symbolic link with an absolute target path (e.g., <code>/data/data/com.termux/files/home</code>).</li>
<li>The attacker includes a subsequent regular file member in the tarball that uses the symlink path as a directory prefix.</li>
<li>The victim executes <code>proot-distro install &lt;malicious_archive&gt;</code> or <code>proot-distro reset</code>.</li>
<li>The <code>_extract_plain_tar()</code> function in <code>proot_distro/commands/install.py</code> processes the symlink and creates it on the host filesystem without validating the target destination.</li>
<li>The extraction process reaches the regular file member and follows the attacker-controlled symlink.</li>
<li>The application writes the file content into the host filesystem location defined by the symlink.</li>
<li>The user's environment is modified, leading to persistent command execution when the user later initiates a session or modifies shell configuration.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows for arbitrary file write on the host Android device within the Termux sandbox boundaries. By overwriting shell initialization scripts like <code>~/.bashrc</code> or <code>~/.profile</code>, attackers can achieve persistent code execution. This vulnerability affects all users of proot-distro on Termux who process untrusted or potentially compromised rootfs archives, with confirmed impact on the Termux app version 0.119.0-beta.3 and proot-distro 5.0.2.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to a patched version of proot-distro immediately.</li>
<li>Implement the <code>_is_safe_symlink</code> validation guard as described in the brief to reject symlinks with absolute targets or those that resolve outside the <code>rootfs_dir</code>.</li>
<li>Audit existing tar extraction logic in other tools to ensure <code>member.linkname</code> is validated against absolute paths and directory traversal.</li>
<li>Monitor for the deployment of malicious tar archives that may attempt to utilize the SHA-256 hash provided in the IOC section.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>vulnerability</category><category>path-traversal</category><category>arbitrary-file-write</category><category>termux</category></item></channel></rss>