T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:57
- Finding
- Unverified Remote Installer Scripts Executed Directly by Shell Interpreters<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:57-66` **Vulnerability Type**: Remote payload retrieval and immediate execution **Risk Level**: High ### Vulnerable Code ```markdown - **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>): ```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 installation instructions download mutable scripts from external URLs and pipe their contents directly into Bash or PowerShell. The downloaded payload is not pinned to a specific release and is not verified with a cryptographic checksum or signature before execution. HTTPS provides transport protection but does not establish that the current script is identical to the version intended during the skill audit. If the hosting service, publishing account, DNS resolution, TLS trust chain, or release infrastructure is compromised, the content delivered by these URLs could be replaced after review. The `curl | bash` and `Invoke-RestMethod | Invoke-Expression` patterns provide the remote endpoint with a direct code-execution channel. They also prevent meaningful review of the complete script before it begins executing. Installing the declared CLI may be necessary for first-time use, but immediate execution of an unpinned remote installer exceeds the minimum privilege and trust required to provide installation guidance. ### Attack Path 1. The `oo` command is unavailable, causing the user or agent to follow the first-time setup instructions. 2. An attacker compromises the installer hosting or publication path, or otherwise causes a malicious script to be returned by one of the documented URLs. 3. `curl` or `Invoke-RestMethod` retrieves the attacker-controlled content. 4. The shell pipeline passes that content immediately to Bash or `Invoke-Exp ...[truncated 911 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove instructions that pipe downloaded content directly into a command interpreter. 2. Direct users to a pinned, versioned release artifact from the official distribution channel. 3. Download the artifact as a separate step so it can be inspected before execution. 4. Publish and verify a SHA-256 or stronger checksum over a trusted, independently protected channel. 5. Prefer cryptographic signature verification with a documented, pinned signing key. 6. Abort installation if checksum or signature validation fails. 7. Avoid requiring administrator or root privileges unless a specific installation operation needs them. 8. Prefer a trusted platform package manager where package provenance and signature verification are enforced. 9. If a script remains necessary, use a workflow similar to: ```bash curl -fL -o install.sh "https://trusted.example/releases/v1.0.2/install.sh" printf '%s %s\n' '<published-sha256>' 'install.sh' | sha256sum --check - less install.sh bash install.sh ``` 10. Provide an equivalent download, signature-validation, inspection, and execution sequence for PowerShell instead of using `Invoke-Expression`. ]]>
