T03 · Remote Payload Retrieval and Execution
Warning
- Location
- install.sh:9
- Finding
- Unpinned Remote Code Retrieval and Executable Installation## Vulnerability Details **File Location**: `install.sh:9-47`; supporting execution instructions in `SKILL.md:44-58` **Vulnerability Type**: Unverified retrieval of mutable remote code **Risk Level**: Medium ### Vulnerable Code ```bash REPO_URL="https://github.com/bobrenze-bot/continuity-101.git" INSTALL_DIR="${HOME}/.openclaw/skills/${SKILL_NAME}" SYMLINK_PATH="${HOME}/continuity-101" ``` ```bash # Check if already installed if [ -d "$INSTALL_DIR" ]; then echo -e "${YELLOW}⚠️ Course already installed at:${NC} $INSTALL_DIR" echo -e "${YELLOW} Updating from repository...${NC}" cd "$INSTALL_DIR" git pull origin main || true else # Clone the repository echo -e "${BLUE}📥 Cloning course repository...${NC}" git clone "$REPO_URL" "$INSTALL_DIR" fi # Create symlink if it doesn't exist if [ ! -L "$SYMLINK_PATH" ]; then echo -e "${BLUE}🔗 Creating symlink...${NC}" ln -s "$INSTALL_DIR" "$SYMLINK_PATH" fi # Ensure CLI is executable if [ -f "$INSTALL_DIR/bin/continuity-101" ]; then chmod +x "$INSTALL_DIR/bin/continuity-101" fi ``` The supporting documentation directs users to execute the remotely supplied CLI: ```bash continuity-101 status continuity-101 start continuity-101 challenge 3 continuity-101 submit 1 ``` ### Technical Analysis The installation process clones or updates the mutable `main` branch of an external GitHub repository. It does not pin the retrieved content to an audited commit, verify a cryptographic checksum, or validate a signed release. The effective installed payload can therefore change after this package has been reviewed. The advertised CLI and course content are not included in the audited artifact. After retrieving them, the installer grants executable permission to `bin/continuity-101`, and the documentation instructs users or agents to invoke that command. Although the installer does not directly execute the dow ...[truncated 1864 chars]
- Remediation
- ## Remediation Suggestions 1. Bundle the complete CLI and course content inside the reviewed skill package whenever possible. 2. If remote retrieval is necessary, pin the repository to a specific audited commit hash rather than tracking `main`. 3. Distribute immutable, versioned release archives and verify a published SHA-256 or stronger cryptographic digest before extraction. 4. Prefer signed releases or signed Git commits and explicitly verify the trusted signer during installation. 5. Do not automatically grant executable permission to downloaded files until their integrity and provenance have been verified. 6. Require explicit user confirmation before downloading or enabling externally supplied executable code. 7. Remove `|| true` from the update command and fail safely if retrieval or verification does not complete successfully. 8. Perform downloads into a staging directory, validate all content, and only then atomically replace the installed version. 9. Record and display the exact installed commit or release identifier so the installed payload can be reproduced and audited. 10. Include the actual executable content in future security reviews rather than relying on code retrieved after installation.
