T03 · Remote Payload Retrieval and Execution
- Location
references/install.md:17- Finding
Mutable Remote Installation Script Executed with Root Privileges
- Content
View full analysis
Vulnerability Details
File Location:
references/install.md:17-19
Vulnerability Type: Remote payload retrieval and privileged execution
Risk Level: CriticalVulnerable code:
bash Or run directly: ```bash curl -fsSL https://raw.githubusercontent.com/ReScienceLab/DeClaw/main/scripts/setup-yggdrasil.sh | sudo bashTechnical Analysis
The installation guide instructs users to download a shell script from the mutable
mainbranch of an external GitHub repository and pipe the response directly intosudo bash. The fetched content is neither pinned to an immutable commit nor verified using a cryptographic signature or checksum. It is also executed without first being saved for inspection.As a result, the code that runs can change after this Skill has been reviewed. The script receives unrestricted root privileges even though the declared functionality only requires installing and configuring Yggdrasil and starting its daemon. Some installation operations may legitimately require elevation, but executing the entire unseen remote response as root exceeds least privilege.
The remotely hosted setup script is not included in the audited artifact. Its exact file modifications, service installation, configuration changes, and persistence behavior therefore could not be independently verified.
Attack Path
- An attacker compromises the external repository, its maintainer account, or another component capable of changing the script returned by the URL.
- The attacker modifies
scripts/setup-yggdrasil.shon the mutablemainbranch to include arbitrary commands. - A user follows the recommended installation command.
curlretrieves the altered response and streams it directly tosudo bash.- The attacker-controlled commands execute as root without integrity verification or prior inspection.
- The payload can modify the operating system, steal accessible data, weaken security controls ...[truncated 636 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the
curl | sudo bashinstallation path. - Publish versioned releases and reference an immutable release artifact or commit rather than the mutable
mainbranch. - Download the installer to a local file without executing it immediately.
- Publish and require verification of a cryptographic signature and a SHA-256 checksum before execution.
- Allow the user or administrator to inspect the downloaded script before running it.
- Separate unprivileged download and validation from privileged installation. Elevate only the specific commands that must modify protected paths, capabilities, or service configuration.
- Prefer signed packages distributed through trusted native package repositories where feasible.
- Document every privileged action, including installed files, configuration changes, capabilities, services, startup behavior, listening endpoints, and uninstall procedures.
- Pin the related Node package to a reviewed version and use a lockfile or integrity metadata so dependency installation is reproducible.
- Remove the
