T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:62
- Finding
- Unverified Remote Shell Script Execution via curl and bash<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 62 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical ### Vulnerable Code ```bash curl -fsSL https://cli.oomol.com/install.sh | bash # macOS / Linux ``` ### Technical Analysis The installation instruction downloads a shell script from an external server and pipes it directly into `bash`. The payload is neither pinned to an immutable version nor inspected or authenticated through a cryptographic signature or checksum before execution. Consequently, the code that runs can change after the Skill has been reviewed. Compromise of the hosting server, DNS resolution, deployment pipeline, or publishing account could turn this command into an arbitrary-code execution channel. HTTPS protects the connection in transit but does not establish that the current remote script is the same artifact that was audited. The behavior is not necessary for the Skill's primary read-only npm lookup functionality. Installation is only a fallback for a missing CLI, but the instructions still expose users or an executing agent to a mutable remote payload. ### Attack Path 1. The `oo` command is unavailable, causing the agent or user to follow the first-time setup instructions. 2. An attacker compromises the remote script, its hosting infrastructure, or the associated release process. 3. `curl` retrieves the attacker-controlled script. 4. The pipe sends the response directly to `bash` without review or integrity verification. 5. The payload executes with all privileges available to the invoking user. 6. The payload can access user-readable data, modify files, install additional software, or establish persistence where local permissions allow. ### Impact Assessment Successful exploitation provides arbitrary shell-code execution under the invoking user's account. The accessible scope can include project files, user-owned configuration, environment variables, active credential ...[truncated 319 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Remove the direct `curl | bash` installation path. - Distribute versioned, immutable release artifacts through a trusted release channel. - Download the installer without executing it, then verify a publisher signature and a documented SHA-256 or stronger digest. - Pin the installer and CLI to an explicit reviewed version rather than a mutable URL. - Display the verified script or package source for inspection before execution. - Require explicit user approval before installing software. - Run installation with ordinary user privileges and request elevation only for a narrowly defined operation when strictly necessary. - Prefer a signed platform package manager installation where available. ]]>
