T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:55- Finding
Unverified Remote Installation Scripts Executed Directly by Shell Interpreters
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 55-63
Vulnerability Type: Remote payload retrieval and execution
Risk Level: CriticalVulnerable Code
bash curl -fsSL https://cli.oomol.com/install.sh | bash # macOS / Linuxpowershell irm https://cli.oomol.com/install.ps1 | iex # Windows PowerShellTechnical Analysis
The first-time setup instructions download mutable content from an external URL and immediately execute it with Bash or PowerShell. The effective code is therefore not contained in the reviewed Skill and can change at any time after the audit.
HTTPS provides transport protection but does not ensure that the retrieved installer is immutable or trustworthy. The instructions do not pin an installer version, validate a cryptographic checksum or signature, save the script for inspection, or constrain the privileges available to it. The PowerShell form uses
Invoke-Expression, while the Bash form pipes the response directly into an interpreter; both prevent meaningful review before execution.Installing the required CLI can be legitimate, but direct remote-script execution exceeds the minimum mechanism necessary to accomplish that task. A version-pinned and cryptographically verified package or locally inspected installer would provide the same functionality with less supply-chain exposure.
Attack Path
- An attacker compromises the installer hosting infrastructure, DNS/account controls, deployment pipeline, or an authorized publisher account.
- The attacker replaces
install.shorinstall.ps1with a malicious payload while retaining the documented URL. - A user or agent encounters an
oo: command not founderror and follows the first-time setup instructions. curlorInvoke-RestMethodretrieves the attacker's current payload.- Bash or
Invoke-Expressionexecutes the payload immediately without integrity verification or prior inspect ...[truncated 951 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove both direct execution patterns:
- Do not pipe
curloutput into Bash. - Do not pass downloaded content to PowerShell
Invoke-Expression.
- Do not pipe
- Pin installation instructions to a specific, immutable CLI release and artifact.
- Download the artifact to a local file without executing it.
- Publish a trusted SHA-256 digest or cryptographic signature through an independently protected release channel.
- Verify the digest or signature before execution and abort on any mismatch.
- Allow the user to inspect the downloaded installer and obtain explicit approval before running it.
- Prefer a reputable package manager with signed packages and version pinning where available.
- Run installation with ordinary user privileges unless elevated privileges are demonstrably required; clearly disclose any files, directories, or system settings the installer will change.
- Document a safe installation sequence, for example: download, verify, inspect, then execute the verified local artifact.
- Remove both direct execution patterns:
