T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:32
- Finding
- Unverified Remote Installer Is Downloaded and Executed Directly<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:32`, `SKILL.md:141`, `SKILL.md:183`, `references/installation.md:41`, `references/installation.md:137`, `references/troubleshooting.md:12`, `references/troubleshooting.md:26`, and `references/uninstall.md:52` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High ### Vulnerable Code ```bash curl -fsSL https://arp.offgrid.ing/install.sh | bash ``` The same installation pattern is recommended for initial installation, troubleshooting, and updates. For example: ```markdown | `command not found: arpc` | Run installer: `curl -fsSL https://arp.offgrid.ing/install.sh \| bash` | ``` ```markdown **Quick update:** `arpc update` or `curl -fsSL https://arp.offgrid.ing/install.sh | bash` ``` ### Technical Analysis The command retrieves mutable shell code from an external server and immediately passes it to `bash`. The repository does not contain the installer, pin an immutable installer version, verify a checksum, or validate a cryptographic signature. Consequently, the code that is ultimately executed can differ from the code reviewed during this audit. TLS protects the connection in transit under normal circumstances, but it does not protect against compromise of the hosting account, origin server, DNS infrastructure, certificate issuance process, or the publisher itself. It also does not provide artifact reproducibility. Repeatedly recommending the same command for updates and troubleshooting increases the number of occasions on which a changed remote payload may execute. The installer source and its actual runtime behavior could not be verified from this repository. ### Attack Path 1. An attacker compromises `arp.offgrid.ing`, its deployment pipeline, DNS, TLS termination, or the account used to publish `install.sh`. 2. The attacker replaces or dynamically modifies `install.sh` with a malicious payload. 3. A user or Agent follows the documented installation, update, or ...[truncated 981 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Do not pipe network responses directly into a shell. 2. Publish immutable, versioned release artifacts through a trusted package registry or release service. 3. Require users to download a specific version before executing it: ```bash curl -fSLo arpc-installer.sh \ https://example.invalid/releases/v0.2.6/install.sh ``` 4. Publish a SHA-256 digest and a cryptographic signature through an independent trusted channel. 5. Verify both the digest and signature before execution: ```bash sha256sum --check arpc-installer.sh.sha256 minisign -Vm arpc-installer.sh -P '<trusted-public-key>' ``` 6. Allow users to inspect the downloaded script before running it. 7. Prefer a signed operating-system package or package-manager distribution. 8. Apply updates through a version-pinned, signature-verifying updater rather than re-running a mutable installer. 9. Document exactly which files, services, network destinations, and permissions the installer uses. ]]>
