T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:134- Finding
Unverified Remote Installer Executed Through a Shell
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 134
Vulnerability Type: Remote payload retrieval and execution
Risk Level: HighVulnerable Code
markdown - If `skvm` is not on PATH, report it to the user and stop — do not install anything. If `skvm jit-optimize` fails with "opencode not found", tell the user to re-run the skvm installer (`curl -fsSL https://skillvm.ai/install.sh | sh` or `npm i -g @ipads-skvm/skvm`) rather than installing opencode yourself. skvm bundles its own private opencode copy and manages it through the installer.The unsafe command is:
bash curl -fsSL https://skillvm.ai/install.sh | shTechnical Analysis
The Skill recommends downloading a script from an external URL and immediately passing its contents to a shell. The retrieved payload is not version-pinned, cryptographically verified, or made available for review before execution. Consequently, the effective installer can change after the Skill package has been audited.
Although this command is presented as user-facing recovery guidance and the Skill explicitly says not to perform installation automatically, executing the recommendation still creates a remote code-execution channel. HTTPS protects transport integrity under normal conditions but does not protect against compromise of the hosting infrastructure, publication account, DNS or certificate ecosystem, or the installer itself.
The alternative command,
npm i -g @ipads-skvm/skvm, also installs an unpinned third-party package globally. That increases supply-chain exposure and may modify user-wide command paths or package directories. Reinstallation may be relevant when SkVM reports a missing bundled dependency, but neither direct shell piping nor an unpinned global installation is required to achieve that purpose.Attack Path
- An attacker compromises
skillvm.ai, its hosting pipeline, distribution infrastructure, or the published `install. ...[truncated 1627 chars]
- An attacker compromises
- Remediation
View remediation
Remediation Suggestions
- Remove the
curl | shinstallation pattern from the Skill instructions. - Direct users to an authenticated release page and pin a specific audited SkVM version.
- Require a download-then-verify workflow, for example:
- Download the installer or release artifact without executing it.
- Verify a publisher-provided cryptographic signature or a checksum obtained through an independent authenticated channel.
- Review the downloaded script before running it.
- Execute the verified local file without elevated privileges unless elevation is strictly necessary.
- Prefer signed, immutable release artifacts over a mutable URL such as
/install.sh. - If npm installation remains supported, pin an exact audited package version and verify package provenance or integrity metadata.
- Avoid global package installation where a project-local or isolated installation can provide the required functionality.
- Explicitly warn users not to run the installer with
sudoor from an administrative shell. - Document the expected files, directories, subprocesses, and permissions used by the installer so users can evaluate its scope before execution.
- Preserve the existing safeguard that the agent must stop rather than installing software automatically.
- Remove the
