T03 · Remote Payload Retrieval and Execution
- Location
README.md:34- Finding
Mutable Remote Installer Is Piped Directly into a Shell
- Content
View full analysis
\ curl -fsSL https://raw.githubusercontent.com/0xNyk/xint/main/install.sh | bash ``` ### Technical Analysis The installation instructions stream a script from the repository's mutable `main` branch directly into Bash. The script is executed without first being saved, inspected, pinned to an immutable commit, or independently authenticated. Setting `XINT_INSTALL_VERSION` only controls which release archive the downloaded installer subsequently selects. It does not pin or authenticate the installer itself. Consequently, the effective code executed by this command may change at any time after the Skill has been reviewed. This creates a remote code-execution channel controlled by the GitHub repository and its account, branch, and release infrastructure. A compromise of the maintainer account, repository permissions, branch protections, or upstream delivery path could convert the documented installation command into arbitrary command execution. ### Attack Path 1. An attacker compromises the repository owner, a maintainer account, or another mechanism capable of modifying `main/install.sh`. 2. The attacker inserts credential theft, persistence, or other arbitrary commands into the installer. 3. A user follows the README and runs the documented `curl ... | bash` command. 4. Bash executes the streamed content immediately with the invoking user's privileges. 5. The payload can access the user's environment, files, API credentials, shell configuration, and any resources available to that account. The same path applies to the nominally pinned example ...[truncated 705 chars]- Remediation
View remediation
/install.sh ``` 4. Publish a SHA-256 digest or cryptographic signature through a separately protected release manifest. 5. Require verification before execution: ```bash sha256sum -c install.sh.sha256 less install.sh bash install.sh ``` 6. Prefer a trusted package manager with immutable versioning and package-signing support. 7. If a convenience bootstrap command is retained, pin it to an immutable commit hash and clearly disclose that direct remote execution remains risky. ]]>
