T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:65- Finding
Unverified Remote Installer Executed Through Bash
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 65–80
Vulnerability Type: Unverified remote payload retrieval and execution
Risk Level: CriticalVulnerable Code
bash curl -fsSL --connect-timeout 1000 https://sysom-prd-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/sysom_prd/skill_cli/install.sh \ | sudo bashbash mkdir -p ~/.local/bin curl -fsSL --connect-timeout 1000 https://sysom-prd-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/sysom_prd/skill_cli/install.sh \ | bash -s -- -d "$HOME/.local/bin"Technical Analysis
The Skill instructs the Agent to retrieve a mutable shell script from an external URL and execute the response immediately. It does not pin an installer version, verify a cryptographic checksum or signature, save the script for inspection, or validate the final destination after redirects.
HTTPS protects data in transit but does not establish the long-term integrity of the hosted object. Compromise of the hosting account, storage bucket, publishing pipeline, or other trusted delivery infrastructure could replace the reviewed installer with arbitrary code. That code would then execute without an additional integrity boundary.
The system-wide variant pipes the response into
sudo bash, making the retrieved content root-privileged. The user-local variant avoidssudobut can still compromise the Agent account and access credentials available to that account. The version value inreferences/manifest.jsondoes not mitigate this issue because it is not cryptographically bound to the installer or installed binaries.Attack Path
- The Agent checks for
sysom-osopsand finds that it is not installed. - Following
SKILL.md, it invokes one of the documented installation pipelines. - An attacker who has compromised the hosted installer or its trusted publication path replaces
install.shwith attacker-controlled shell commands. curlretrieves the modified response.- The pipe sends the response d ...[truncated 1159 chars]
- The Agent checks for
- Remediation
View remediation
Remediation Suggestions
- Remove both direct
curl | bashinstallation pipelines. - Pin the installer and resulting CLI to an explicit, immutable release version.
- Download the installer into a securely created temporary file without executing it.
- Publish a SHA-256 or stronger digest through a separately protected channel and verify it before execution.
- Cryptographically sign release artifacts and verify the signature against a pinned vendor public key.
- Reject unexpected redirects and validate that the final resolved URL uses HTTPS and an explicitly approved hostname.
- Make the verified installer available for inspection before it is executed.
- Prefer signed operating-system packages or a signed package repository over shell-based installation.
- Use user-local installation by default. Require a deliberate, separately explained decision before any root-level installation.
- Document the exact files, directories, permissions, and configuration changes made by the installer.
- Extend
references/manifest.jsonto identify the exact release and expected hashes of every supported platform artifact. - Run installation with the minimum required privileges and prevent the installer from inheriting unrelated cloud credentials where operationally possible.
- Remove both direct
