T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:62
- Finding
- Unverified Remote Installer Downloaded and Executed Directly## Vulnerability Details **File Location**: `SKILL.md`, lines 62-66 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High ### 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 download mutable scripts from `cli.oomol.com` and immediately execute them through Bash or PowerShell. The commands do not pin a release, verify a cryptographic signature or checksum, or provide an inspection step before execution. Consequently, the code that runs may differ from the content available when the Skill was audited. HTTPS protects data in transit but does not establish that the remote publishing system or delivered script is trustworthy. Compromise of the hosting account, release pipeline, server, DNS infrastructure, or another trusted delivery component could replace the installer with arbitrary code. Installing the declared CLI may be necessary for the Skill, but direct pipe-to-shell execution exceeds the minimum safe mechanism needed to perform installation. A downloaded, version-pinned, integrity-verified package would achieve the same functionality with substantially less risk. The Windows command has the same weakness: `Invoke-RestMethod` retrieves the script and `Invoke-Expression` executes the returned text without integrity verification. ### Attack Path 1. The `oo` CLI is absent, and an attempted connector action fails with `oo: command not found`. 2. The agent or user follows the documented first-time setup instructions. 3. An attacker compromises or gains control over the installer endpoint or its software-delivery pipeline. 4. The endpoint returns an altered Bash or PowerShell installer. 5. The shell executes the response immediately, without validating its version, signature, checksum, or contents. 6. The malicious installer perf ...[truncated 1106 chars]
- Remediation
- ## Remediation Suggestions 1. Remove both direct execution patterns: - Do not pipe `curl` output into `bash`. - Do not pass network responses directly to `Invoke-Expression`. 2. Pin installation to a specific, reviewed CLI release rather than a mutable installer URL. 3. Download the installer or package to a local file without executing it. 4. Publish and verify a cryptographic signature from a separately protected signing key. At minimum, publish a trusted SHA-256 checksum and compare it before execution. 5. Abort installation if signature, checksum, expected version, or publisher verification fails. 6. Prefer a trusted platform package manager or signed native package with explicit version constraints. 7. Show the verified local path and request explicit user approval before executing installation code. 8. Run the installer with ordinary user privileges unless a documented installation step strictly requires elevation. 9. Document the installer source, expected publisher identity, version, checksum, and files or permissions modified during installation. A safer conceptual workflow is: ```bash curl -fL -o oo-installer.sh "https://trusted.example/oo/releases/<pinned-version>/install.sh" echo "<trusted-sha256> oo-installer.sh" | sha256sum --check - less oo-installer.sh bash ./oo-installer.sh ``` The checksum must come from a trusted, independently protected release channel; merely downloading the checksum from the same mutable endpoint does not adequately mitigate compromise.
