T03 · Remote Payload Retrieval and Execution
- Location
scripts/install.sh:58- Finding
Unverified Remote Script Downloaded and Executed by 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 the user chooses 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. Although the URL points to the declared OpenViking upstream organization, the downloaded content is not pinned to an immutable commit or release. The script does not verify a cryptographic checksum or signature, save the payload for inspection, or display the commands that will execute. Consequently, the effective code executed on a user's system can change after this Skill has been reviewed. This behavior is not required for the Skill's core Python-based search and context-management functionality. The documentation explicitly states that the Rust CLI is optional and that direct mode can operate without a server or CLI. ### Attack Path 1. An attacker compromises the upstream repository, a maintainer account, or the referenced `main` branch. 2. The attacker modifies `crates/ov_cli/install.sh` to include malicious shell commands. 3. A user runs `scripts/install.sh`, agrees to install the Rust CLI, and does not have Cargo installed. 4. `curl` retrieves the attacker's current payload. 5. The pipe sends the response directly to Bash without verification or review. 6. The payload executes with all privileges available to the user running the instal ...[truncated 926 chars]- Remediation
View remediation
