T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:55
- Finding
- Unverified Remote Installer Downloaded and Executed Directly<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 55–59 **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 pipe remotely downloaded content directly into a command interpreter. Neither installation path pins the installer to an immutable version nor verifies a cryptographic signature or checksum before execution. Consequently, the effective code executed by these commands can change after the Skill has been reviewed. Compromise of the hosting infrastructure, DNS or delivery chain, or the publisher account could cause arbitrary replacement content to execute immediately. HTTPS protects the connection in transit under normal conditions, but it does not establish that the retrieved script is an audited, immutable release. Installing the `oo` CLI is relevant to the Skill's declared AeroLeads functionality. However, immediate execution of an unverified remote script exceeds the minimum safe mechanism necessary to install that dependency. A user can instead download a pinned release, verify its provenance and integrity, and install it separately. The audit did not establish that the current remote installers are malicious. The confirmed vulnerability is the mutable and unverified remote code-execution channel created by the documented commands. ### Attack Path 1. The `oo` command is unavailable, and the user or agent follows the first-time setup instructions. 2. The shell requests `install.sh` or `install.ps1` from the external OOMOL endpoint. 3. An attacker who compromises the endpoint, its publishing process, or another trusted delivery component substitutes a malicious installer. 4. Because the response is passed directly to `bash` or `iex`, no local r ...[truncated 1170 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove both download-to-interpreter pipelines from the setup instructions. 2. Direct users to an official package manager or a version-pinned release hosted in a verifiable official repository. 3. Download the installer or binary to a local file without executing it: ```bash curl --fail --show-error --location --output oo-install.sh \ "https://example.invalid/releases/vX.Y.Z/install.sh" ``` 4. Publish and verify a SHA-256 or stronger checksum over a trusted, separately authenticated channel: ```bash echo "<expected-sha256> oo-install.sh" | sha256sum --check - ``` 5. Prefer cryptographic release signatures and validate the signing key through an independently documented trust path. 6. Allow the user to inspect the downloaded installer before explicitly invoking it. 7. Pin the CLI version so that the reviewed dependency cannot change silently. 8. Avoid requesting administrator privileges unless a documented installation step strictly requires them; prefer a user-scoped installation. 9. For Windows, replace `irm ... | iex` with separate download, signature or hash verification, and explicit execution steps. 10. Document the domains contacted, files created, expected installation location, and permissions required by the installer. ]]>
