T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:64- Finding
Unverified Remote Installer Download and Immediate Shell Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 64–73
Vulnerability Type: Remote payload retrieval and execution
Risk Level: CriticalThe first-time setup instructions download mutable installation scripts from an external server and immediately execute the returned content:
markdown - **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>): ```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
Both installation commands directly connect a network retrieval mechanism to a command interpreter:
- On macOS and Linux,
curlretrievesinstall.shand pipes it directly intobash. - On Windows,
Invoke-RestMethodretrievesinstall.ps1and pipes it intoInvoke-Expression.
The instructions do not pin a release version, verify a cryptographic signature or checksum, or save the scripts for inspection before execution. Consequently, the effective code can change after the Skill has been reviewed. HTTPS protects the connection in transit but does not mitigate compromise of the hosting server, deployment pipeline, vendor account, or other infrastructure controlling the response.
Installing the CLI may be relevant to first-time setup, but immediate execution of an unverified remote response exceeds the minimum behavior required to tell the user that the prerequisite is missing. It also extends beyond the Skill's declared runtime tool restriction,
Bash(oo *), because the installer itself can invoke arbitrary commands and tools.Attack Path
- An attempted API-SPORTS operation fails because the
ooCLI is unavailable. - The setup fallback directs the user or Agent to execute one of the documented installer commands.
- An attacker compromises or otherwise gains cont ...[truncated 1379 chars]
- On macOS and Linux,
- Remediation
View remediation
Remediation Suggestions
- Remove both direct execution patterns:
- Do not pipe
curloutput intobash. - Do not pipe
Invoke-RestMethodoutput intoInvoke-Expression.
- Do not pipe
- Prefer a trusted operating-system package manager or a version-pinned release from the vendor's verifiable official repository.
- Download the installer to a local file without executing it automatically.
- Pin the installer to a specific immutable version and publish its expected SHA-256 or stronger cryptographic digest.
- Verify the digest or a trusted code-signing signature before execution, and abort on verification failure.
- Display the exact source, version, requested privileges, and verification result to the user.
- Require explicit user approval before executing the verified installer; do not let an authentication or command-not-found error silently trigger installation.
- Run installation with standard user privileges unless elevated access is demonstrably necessary, and document any requested elevation.
- After installation, verify that the resolved
ooexecutable originates from the expected installation path and release. - Keep installation outside the normal API query workflow so routine read operations remain constrained to the declared
oocommand interface.
- Remove both direct execution patterns:
