T03 · Remote Payload Retrieval and Execution
- Location
scripts/install.sh:45- Finding
Unverified Remote Script Downloaded and Executed Through Bash
- Content
View full analysis
/dev/null; then log_info "通过 cargo 安装 ov_cli..." cargo install --git https://github.com/volcengine/OpenViking ov_cli else log_info "通过安装脚本安装 ov..." curl -fsSL https://raw.githubusercontent.com/volcengine/OpenViking/main/crates/ov_cli/install.sh | bash fi log_info "Rust CLI 安装完成" ``` ### Technical Analysis When a user elects to install the optional Rust CLI and Cargo is unavailable, the installer downloads a shell script from the mutable `main` branch of an external GitHub repository and pipes it directly into Bash. The project does not pin the script to an immutable commit, verify a cryptographic checksum or signature, save it for inspection, or constrain the commands it may execute. Consequently, the effective code executed on the user's computer can change after this Skill has been reviewed. The host belongs to the organization associated with the declared OpenViking dependency, which reduces the likelihood of intentional abuse but does not remove the supply-chain risk. A compromised upstream repository, maintainer account, branch, or release process could cause arbitrary commands to run. The Rust CLI is optional, while the Skill's primary Python functionality can operate without this remote shell execution; therefore, this behavior exceeds the minimum execution exposure required for the core functionality. ### Attack Path 1. An attacker compromises the upstream OpenViking repository, a maintainer account, or its branch-management process. 2. The attacker modifies `crates/ov_cli/install.sh` on the mutable `main` branch. 3. A user runs `scripts/install.sh`, chooses to install the optional Rust CLI, and does not have Cargo installed. 4. `curl` retrieves t ...[truncated 862 chars]- Remediation
View remediation
