T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:42- Finding
Mutable Remote Installation Script Is Piped Directly into Bash
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill’s read-only gateway inspection goal is coherent, but its setup instructions can install or update mutable executable components without strong user control or integrity checks.
Install only after reviewing and controlling setup yourself: prefer vendor package managers or pinned, verified Aliyun CLI and plugin versions, avoid curl-to-bash and automatic plugin updates, use a least-privilege read-only RAM identity, and do not paste access keys into agent-visible commands or logs.
SKILL.md:42Mutable Remote Installation Script Is Piped Directly into Bash
references/cli-installation-guide.md:21Mutable “Latest” CLI Binaries Are Installed Without Integrity Verification
SKILL.md:53Automatic and Unconditional Plugin Installation Creates Executable Supply-Chain Exposure
references/cli-installation-guide.md:102Credential Configuration Examples Expose Secrets Through Command-Line Arguments
The skill instructs users to execute a remote script fetched over the network directly into bash. This is a classic supply-chain and remote-code-execution risk because the downloaded content is not pinned, verified, or reviewed before execution, and the skill context normalizes running it as part of setup.
- **Linux / macOS (binary)**:
```bash
curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash
The pipe into bash creates an execution chain where untrusted network content is immediately run in the shell. This removes opportunities for inspection and makes compromise of the download endpoint, CDN, or transport path directly result in command execution on the host.
- **Linux / macOS (binary)**:
```bash
curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash
The trigger scenarios include generic phrases like "how is the gateway performing", "check if the gateway has any anomalies", and "check gateway health status". These are broad natural-language requests without explicit scope constraints or exclusion conditions, increasing the risk that the skill activates for general troubleshooting requests beyond this specific Alibaba Cloud inspection workflow.
The skill requires enabling auto-plugin installation and updating plugins as a prerequisite for a read-only inspection workflow. That expands the skill from gateway monitoring into software/package management, which increases supply-chain and environment-modification risk beyond what is necessary for the stated purpose.
Mandating plugin installation during execution causes the skill to alter the local toolchain in order to complete a monitoring task. Even if the plugin is legitimate, this unnecessarily broadens permissions and creates opportunities for unreviewed code installation or unexpected side effects on the host.
The best-practices section authorizes installing any 'required plugin', which is overly broad and not constrained to the minimum functionality needed for this skill. In an agent context, that instruction can be abused to justify arbitrary environment changes unrelated to gateway inspection.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
1. Log in to Aliyun Console: https://ram.console.aliyun.com/
2. Navigate to: AccessKey Management
3. Create a new AccessKey pair
4. Save the secret immediately — it's only shown once
### Configuration Modes
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Restrict permissions
chmod 600 ~/.aliyun/config.json
The skill links users to help.aliyun.com/zh/... documentation pages, which imposes a Chinese-language locale by default. There is no indication that the user can choose another language or that the Chinese locale is required for a region-specific compliance reason.
This markdown file applies to SQP-3, which covers natural-language policy violations such as forcing a specific language without user opt-in. The sample config sets "language": "en" as the stored profile value, but the guide does not explain that this is only an example or mention how users can choose another language.