T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:60
- Finding
- Unverified Remote Installation Scripts Executed Directly by Shells<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 60–64 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical ### Vulnerable Code ```bash curl -fsSL https://cli.oomol.com/install.sh | bash # macOS / Linux ``` ```powershell irm https://cli.oomol.com/install.ps1 | iex # Windows PowerShell ``` ### Technical Analysis The first-time setup instructions retrieve installation scripts from external URLs and immediately pass their contents to Bash or PowerShell. Neither command pins an immutable script version nor verifies a cryptographic checksum or signature before execution. Consequently, the code that users execute can differ from the content available when this Skill was audited. HTTPS protects data in transit but does not eliminate risks arising from compromise of the hosting infrastructure, publishing account, domain, or installation pipeline. It also does not allow the user to verify that the retrieved script corresponds to a reviewed release. Although these commands are presented only as a fallback when the `oo` CLI is unavailable, direct remote-to-shell execution is not the minimum privilege or minimum-risk mechanism necessary to install the CLI. The documentation can instead direct users to a pinned and independently verifiable release artifact. There is no evidence in the audited file that the current remote scripts are malicious. The vulnerability is that their mutable, externally hosted contents are executed without verification. ### Attack Path 1. The `oo` command is unavailable on the user's system. 2. The user or agent follows the first-time setup instructions in `SKILL.md`. 3. `curl` or `Invoke-RestMethod` retrieves a mutable script from `cli.oomol.com`. 4. An attacker who has compromised the script host, publishing pipeline, account, or domain causes the endpoint to return attacker-controlled code. 5. The pipe to `bash` or `iex` executes the response immediately, without in ...[truncated 936 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove all direct pipe-to-shell installation commands, including both `curl | bash` and `Invoke-RestMethod | Invoke-Expression`. 2. Link to a pinned, immutable CLI release rather than a mutable installation endpoint. 3. Publish SHA-256 or stronger checksums through an independently protected release channel. 4. Prefer signed release artifacts and document how users can verify the publisher's signature. 5. Require separate download, verification, and execution steps. For example: - Download the installer to a local file. - Verify its checksum and signature against the pinned release metadata. - Allow the user to inspect it. - Execute it only after successful verification and explicit approval. 6. Prefer a reputable platform package manager where packages are version-pinned and signature-verified. 7. Avoid suggesting elevated execution unless installation genuinely requires it, and clearly document any permissions or filesystem locations the installer modifies. 8. If a bootstrap script must remain available, pin a reviewed script by immutable digest and fail closed when verification does not succeed. ]]>
