<?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>Proot-Distro - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/proot-distro/</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/products/proot-distro/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></channel></rss>