{"description":"Trending threats, MITRE ATT\u0026CK coverage, and detection metadata. Fed continuously.","feed_url":"https://feed.craftedsignal.io/vendors/termux/feed.json","home_page_url":"https://feed.craftedsignal.io/","items":[{"_cs_actors":[],"_cs_cpes":[],"_cs_cves":[],"_cs_exploited":false,"_cs_has_poc":false,"_cs_poc_references":[],"_cs_products":["proot-distro"],"_cs_severities":["high"],"_cs_tags":["container-isolation","sandbox-escape","privilege-escalation","android"],"_cs_type":"advisory","_cs_vendors":["Termux"],"content_html":"\u003cp\u003eThe proot-distro utility, commonly used within the Termux environment on Android, contains a critical flaw in its \u003ccode\u003erestore\u003c/code\u003e command. The vulnerability arises from improper validation of hardlink entries within backup archives. When processing an archive, the utility resolves the \u003ccode\u003elinkname\u003c/code\u003e 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.\u003c/p\u003e\n\u003cp\u003eThis 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.\u003c/p\u003e\n\u003ch2 id=\"attack-chain\"\u003eAttack Chain\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eAttacker creates a target victim container using \u003ccode\u003eproot-distro install\u003c/code\u003e to establish the filesystem structure.\u003c/li\u003e\n\u003cli\u003eAttacker prepares a malicious archive file using the \u003ccode\u003etarfile\u003c/code\u003e Python module to define hardlink metadata.\u003c/li\u003e\n\u003cli\u003eAttacker sets the \u003ccode\u003elinkname\u003c/code\u003e attribute of the hardlink to reference sensitive files inside the victim's container path (e.g., \u003ccode\u003e/root/.ssh/id_rsa\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAttacker maps the source path of the hardlink to a location inside the attacker's own container or a globally readable directory.\u003c/li\u003e\n\u003cli\u003eAttacker lures the target user into executing \u003ccode\u003eproot-distro restore\u003c/code\u003e using the malicious archive.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erestore\u003c/code\u003e command processes the hardlink entries, resolving the cross-container reference due to lack of validation.\u003c/li\u003e\n\u003cli\u003eAttacker accesses the victim's sensitive data now mirrored within the attacker-controlled container filesystem.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eSuccessful 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.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eUpgrade proot-distro to the latest version once the maintainers provide a patch addressing the missing container boundary check.\u003c/li\u003e\n\u003cli\u003eImplement the logic provided in the brief's \u0026quot;Proposed Fix\u0026quot; to verify that the \u003ccode\u003elink_container\u003c/code\u003e strictly matches the \u003ccode\u003econtainer_name\u003c/code\u003e during restore operations.\u003c/li\u003e\n\u003cli\u003eAvoid restoring backup archives obtained from untrusted or unverified sources within the Termux environment.\u003c/li\u003e\n\u003cli\u003eAudit existing container configurations for any unexpected files created by previous restore operations.\u003c/li\u003e\n\u003c/ol\u003e\n","date_modified":"2026-07-29T16:42:42Z","date_published":"2026-07-29T16:42:42Z","id":"https://feed.craftedsignal.io/briefs/2026-07-proot-distro-isolation-bypass/","summary":"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.","title":"Proot-Distro Container Isolation Bypass via Crafted Restore Archive","url":"https://feed.craftedsignal.io/briefs/2026-07-proot-distro-isolation-bypass/"},{"_cs_actors":[],"_cs_cpes":[],"_cs_cves":[],"_cs_exploited":false,"_cs_has_poc":false,"_cs_poc_references":[],"_cs_products":["proot-distro (5.1.4)","Termux app (0.119.0-beta.3)"],"_cs_severities":["high"],"_cs_tags":["vulnerability","path-traversal","arbitrary-file-write","termux"],"_cs_type":"advisory","_cs_vendors":["Termux"],"content_html":"\u003cp\u003eThe 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 \u003ccode\u003einstall\u003c/code\u003e or \u003ccode\u003ereset\u003c/code\u003e commands, the application incorrectly trusts the \u003ccode\u003elinkname\u003c/code\u003e 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.\u003c/p\u003e\n\u003cp\u003eBecause the underlying Python \u003ccode\u003eopen()\u003c/code\u003e 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 \u003ccode\u003e~/.bashrc\u003c/code\u003e or \u003ccode\u003e~/.profile\u003c/code\u003e), resulting in persistent code execution upon the next shell session. This vulnerability also impacts the \u003ccode\u003ehelpers/docker.py\u003c/code\u003e component via the \u003ccode\u003e_apply_layer\u003c/code\u003e function.\u003c/p\u003e\n\u003ch2 id=\"attack-chain\"\u003eAttack Chain\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eThe attacker crafts a malicious tar archive containing a symbolic link with an absolute target path (e.g., \u003ccode\u003e/data/data/com.termux/files/home\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eThe attacker includes a subsequent regular file member in the tarball that uses the symlink path as a directory prefix.\u003c/li\u003e\n\u003cli\u003eThe victim executes \u003ccode\u003eproot-distro install \u0026lt;malicious_archive\u0026gt;\u003c/code\u003e or \u003ccode\u003eproot-distro reset\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003e_extract_plain_tar()\u003c/code\u003e function in \u003ccode\u003eproot_distro/commands/install.py\u003c/code\u003e processes the symlink and creates it on the host filesystem without validating the target destination.\u003c/li\u003e\n\u003cli\u003eThe extraction process reaches the regular file member and follows the attacker-controlled symlink.\u003c/li\u003e\n\u003cli\u003eThe application writes the file content into the host filesystem location defined by the symlink.\u003c/li\u003e\n\u003cli\u003eThe user's environment is modified, leading to persistent command execution when the user later initiates a session or modifies shell configuration.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eSuccessful exploitation allows for arbitrary file write on the host Android device within the Termux sandbox boundaries. By overwriting shell initialization scripts like \u003ccode\u003e~/.bashrc\u003c/code\u003e or \u003ccode\u003e~/.profile\u003c/code\u003e, 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.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to a patched version of proot-distro immediately.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003e_is_safe_symlink\u003c/code\u003e validation guard as described in the brief to reject symlinks with absolute targets or those that resolve outside the \u003ccode\u003erootfs_dir\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAudit existing tar extraction logic in other tools to ensure \u003ccode\u003emember.linkname\u003c/code\u003e is validated against absolute paths and directory traversal.\u003c/li\u003e\n\u003cli\u003eMonitor for the deployment of malicious tar archives that may attempt to utilize the SHA-256 hash provided in the IOC section.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-07-29T16:33:09Z","date_published":"2026-07-29T16:33:09Z","id":"https://feed.craftedsignal.io/briefs/2026-07-proot-distro-symlink-escape/","summary":"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.","title":"Arbitrary Host File Write via Symlink Escape in proot-distro","url":"https://feed.craftedsignal.io/briefs/2026-07-proot-distro-symlink-escape/"}],"language":"en","title":"CraftedSignal Threat Feed - Termux","version":"https://jsonfeed.org/version/1.1"}