T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:57
- Finding
- Unverified Remote Installer Downloaded and Executed Directly## Vulnerability Details **File Location**: `SKILL.md`, lines 57–62 **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 Bash or PowerShell. The installer is mutable external code and is executed without a pinned version, checksum verification, digital-signature validation, or an opportunity to inspect the downloaded file. HTTPS protects the connection in ordinary circumstances but does not protect against compromise of the hosting infrastructure, publishing account, domain, or installer itself. If any of these resources is compromised, the content executed by users can change after the Skill has been reviewed. Installing the CLI is not necessary for the Skill's ordinary declared operation because the document instructs users to assume the CLI is already installed. Even as an exceptional setup step, immediate execution of unverified remote code exceeds the minimum privileges required to document or invoke the Semrush connector. ### Attack Path 1. An attacker compromises the OOMOL installer hosting infrastructure, domain, deployment credentials, or remote installer. 2. The attacker replaces `install.sh` or `install.ps1` with a malicious payload. 3. The `oo` command is unavailable, causing the user or agent to follow the documented first-time setup procedure. 4. `curl` or `irm` retrieves the attacker's current payload. 5. The shell immediately executes the payload without integrity validation or review. 6. The payload performs arbitrary actions with the privileges of the user running the installation command. ### Impact Assessment Successful exploitation provides arbitrary command exe ...[truncated 565 chars]
- Remediation
- ## Remediation Suggestions 1. Remove direct `curl | bash` and `irm | iex` execution patterns. 2. Distribute the CLI through a trusted package manager or a version-pinned release. 3. Download the installer or binary to a local file before execution. 4. Publish a cryptographic checksum or digital signature through an independently protected channel and verify it before execution. 5. Pin the expected CLI and installer version so reviewed behavior cannot change silently. 6. Require explicit user approval before installing software; do not let an agent automatically execute installation commands after an authentication or command-not-found error. 7. Run installation with ordinary user privileges unless elevated access is strictly necessary and clearly explained. 8. Prefer instructions similar to the following pattern: ```bash curl -fSLo oo-installer.sh "https://trusted.example/releases/v1.0.2/install.sh" echo "EXPECTED_SHA256 oo-installer.sh" | sha256sum --check - less oo-installer.sh bash oo-installer.sh ``` The release URL and checksum must come from trusted, authenticated sources, and signature verification is preferable where supported.
