T03 · Remote Payload Retrieval and Execution
- Location
scripts/install-datamoat-linux.sh:33- Finding
Unpinned Linux Repository Code Is Downloaded and Executed Without Integrity Verification
- Content
View full analysis
/dev/null 2>&1 || true else git clone --depth 1 "$REPO_URL" "$SRC_DIR" >/dev/null 2>&1 || gentle_site_exit fi cd "$SRC_DIR" || gentle_site_exit echo "Installing DataMoat and starting background protection (no screen needed)..." if ! bash install.sh --remote-no-screen; then gentle_site_exit fi ``` ### Technical Analysis The installer clones or updates the current default branch of a remote GitHub repository and immediately executes its `install.sh`. The repository is not pinned to an immutable commit or release tag, and the downloaded source is not authenticated with a checksum or cryptographic signature. As a result, the effective code executed by this Skill can change after the Skill itself has been reviewed. The local source directory also remains mutable between executions. A compromised upstream repository, maintainer account, or release process could replace `install.sh` with arbitrary commands. This behavior also conflicts with the documentation in `SKILL.md`, which states that installers obtain releases from an official manifest and verify SHA-256 checksums. The Linux installer does neither. ### Attack Path 1. An attacker compromises the upstream repository, a maintainer account, or its default branch. 2. The attacker modifies `install.sh` or another component invoked by it. 3. A user follows the Skill instructions and runs `scripts/install-datamoat-linux.sh`. 4. The script clones the compromised repository or performs `git pull -- ...[truncated 1057 chars]- Remediation
View remediation
