T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:65
- Finding
- Unverified Remote Installation Scripts Are Executed Directly by a Shell## Vulnerability Details **File Location**: `SKILL.md`, lines 65–69 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High ```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 download mutable scripts from `cli.oomol.com` and execute them immediately using `bash` or PowerShell `Invoke-Expression`. Neither command pins a script version, verifies a cryptographic checksum or digital signature, nor saves the downloaded content for inspection before execution. This creates a remote code-execution channel whose effective payload can change after the Skill has been reviewed. Although installing the OOMOL CLI supports the declared Amplemarket connector functionality and the download domain corresponds to the stated vendor, direct download-to-shell execution is not the minimum privilege or safest mechanism necessary to install a client. Trust in the Skill package is effectively extended to the remote server, its deployment pipeline, and its future content. The Unix command also uses `curl -f`, which detects HTTP errors, but this does not validate the authenticity or integrity of a successfully returned script. HTTPS protects transport in normal circumstances but does not protect against compromise of the remote service or its publishing infrastructure. The PowerShell form has the same underlying problem because `irm` retrieves the content and `iex` interprets it directly as code. ### Attack Path 1. The `oo` command is unavailable and the user follows the documented first-time setup procedure. 2. An attacker compromises the remote installation endpoint, its publishing pipeline, or another component capable of controlling the script served from the documented URL. 3. The endpoint returns an altered installation script. 4. `ba ...[truncated 1238 chars]
- Remediation
- ## Remediation Suggestions 1. Replace pipe-to-shell installation with a version-pinned package distributed through a trusted operating-system package manager or an official release artifact. 2. Publish cryptographic checksums and, preferably, digitally signed release artifacts. Require signature or checksum verification before execution. 3. Download the installer to a local file rather than piping it directly into a shell, for example: - Download a specific, immutable release. - Verify its expected SHA-256 checksum or vendor signature. - Stop installation if verification fails. - Execute the verified local file only after allowing inspection. 4. Avoid PowerShell `Invoke-Expression` for remotely retrieved content. Use a signed installer package or a verified local script instead. 5. Document that installation must be performed without administrative privileges unless a specific, justified step requires elevation. 6. Pin the CLI version used by the Skill and document a controlled upgrade process so that future remote changes do not silently alter audited behavior. 7. Keep installation separate from normal Skill execution. The existing instruction to install only after an actual `command not found` error should remain, but it does not replace payload verification.
