T03 · Remote Payload Retrieval and Execution
- Location
references/cli-installation-guide.md:41- Finding
Unverified Mutable CLI Binary Installed into a Privileged Executable Path
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill’s OSS scheduled upload purpose is coherent, but it includes under-scoped installation, persistence, and local/cloud mutation steps that users should review before installing.
Review this skill carefully before installing. It is not evidence of malware, but use it only with a least-privilege Alibaba Cloud profile, avoid global auto-plugin installation, verify any downloaded CLI binary, inspect scheduler changes before applying them, and do not let it create or upload placeholder data when the real local source path is missing.
references/cli-installation-guide.md:41Unverified Mutable CLI Binary Installed into a Privileged Executable Path
SKILL.md:34Global Automatic Plugin Installation Introduces Unpinned Executable Dependencies
SKILL.md:299Non-Interactive Cron Installation Can Replace the Entire Existing Crontab
SKILL.md:230Missing Source Paths Cause Arbitrary Local File Creation and Fabricated Uploads
SKILL.md:167Mandatory Account-Wide Bucket Enumeration Exceeds Target-Specific Least Privilege
YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).
tion must include:
> `--user-agent AlibabaCloud-Agent-Skills/alibabacloud-oss-manage-cron-upload`
Required local tools:
| Tool | Required | Purpose | Verify |
| --- | --- | --- | --- |
| `aliyun` CLI | Yes | Credential gate, command discovery, and integrated `ossutil` upload/list surface | `aliyun version` and `aliyun ossutil --help` |
| `cron` or `schtasks` | Yes | Local recurring execution | `crontab -l` or `schtasks /Query /TN "OSS Scheduled Sync"` |
Use `references/cli-installation-guide.md` only for CLI installation and plugin setup. For this skill, use the integrated `aliyun ossutil` command surface — do **not** require standalone `ossutil` installation or bare `ossutil` commands.
## Environment Variables
No extra cloud-specific environment variables are required beyond an already configured Alibaba Cloud profile.
Optional local variables used in examples:
| Variable | Required/Optional | Description | Default Value |
| --- | --- | --- | --- |
| `ALIBABA_CLOUD_PROFILE` |
schtasks /Delete removes a scheduled task and is a destructive system operation affecting host persistence and potentially business-critical backups. If task names collide or the user misunderstands the target, the skill could delete a legitimate scheduled job without adequate confirmation.
Windows Task Scheduler [OS-local]:
schtasks /Delete /TN "OSS Scheduled Sync" /F
Optional OSS test cleanup [aliyun CLI / integrated ossutil]:
The cleanup command performs object deletion in OSS based on concatenated bucket and prefix parameters. Even with some validation, destructive operations against cloud storage are high risk because prefix handling mistakes, empty values, or user misunderstanding can remove the wrong object or normalize to a different target than intended.
Optional OSS test cleanup [aliyun CLI / integrated ossutil]:
aliyun ossutil rm "oss://${BucketName}/${TargetOssPrefix}test-object.txt" --region "${RegionId}" \
--read-timeout 60 --connect-timeout 30 \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-oss-manage-cron-upload
Referenced artifact was not completely inspected
See `references/related-apis.md` for the command inventory, OSS capability notes, and validation notes. That file is reference metadata only.
Referenced artifact was not completely inspected
See `references/related-apis.md` for the command inventory, OSS capability notes, and validation notes. That file is reference metadata only.
The document first says agents must never execute credential-setting commands, then states that non-interactive credential configuration is recommended for agent-driven automation. That contradiction can cause an agent or operator to treat dangerous secret-injection commands as acceptable in automation, leading to credential exposure, persistence, or misuse.
The documented aliyun ossutil rm "oss://${BucketName}/${TargetOssPrefix}test-object.txt" command performs object deletion using interpolated bucket and prefix parameters. If those parameters are malformed, empty, or attacker-influenced, the deletion target could expand beyond the intended test artifact, causing unintended data loss in OSS.
| `aliyun` CLI | `aliyun ossutil cp --help` | Verify the integrated upload command surface | Not validated locally because `aliyun` was not installed in this repository |
| `aliyun` CLI | `aliyun ossutil cp "${LocalSourcePath}" "oss://${BucketName}/${TargetOssPrefix}" -r -u --max-age "${MaxAge}" --region "${RegionId}" --read-timeout 300 --connect-timeout 30 --user-agent AlibabaCloud-Agent-Skills` | Canonical incremental upload command via integrated ossutil | Not validated locally because `aliyun` was not installed in this repository, and not executed against a live bucket here |
| `aliyun` CLI | `aliyun ossutil ls "oss://${BucketName}/${TargetOssPrefix}" --region "${RegionId}" --read-timeout 60 --connect-timeout 30 --user-agent AlibabaCloud-Agent-Skills` | Verify uploaded objects under the target prefix | Not validated locally because `aliyun` was not installed in this repository, and not executed against a live bucket here |
| `aliyun` CLI | `aliyun ossutil rm "oss://${BucketName}/${TargetOssPrefix}test-object.txt" --region "${RegionId}" --read-timeout 60 --connect-timeout 30 --user-agent AlibabaCloud-Agent-Skills` | Optional cleanup for test artifacts | Not validated locally because `aliyun` was not installed in this repository |
| Local OS | `crontab -l` | Verify cron registration on Linux/macOS | Validated locally |
| Local OS | `schtasks /Query /TN "OSS Scheduled Sync" /V /FO LIST` | Verify Task Scheduler registration on Windows | Not validated locally in this macOS repository |
In the capability notes, the same rm pattern is presented as an available deletion capability, which normalizes destructive behavior without strong constraints. In a skill that automates uploads and verification, exposing a delete command tied to variable path components increases the chance of misuse or unsafe parameter propagation into a destructive operation.
| `aliyun ossutil stat "oss://${BucketName}" --region ... --output-format json` | Bucket metadata lookup | Used to verify bucket metadata and region |
| `aliyun ossutil cp ... -r -u --max-age ... --region ...` | Object upload plus object comparison/listing for incremental behavior | Official scenario command through integrated `aliyun ossutil`; permissions align with object upload, read, and list needs |
| `aliyun ossutil ls "oss://${BucketName}/${TargetOssPrefix}" --region ...` | Object listing under the target prefix | Post-upload verification under the target prefix |
| `aliyun ossutil rm "oss://${BucketName}/${TargetOssPrefix}test-object.txt" --region ...` | Object deletion | Optional cleanup for test artifacts only |
## RAM/IAM Notes
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
> **Parameter Extraction** — Extract all user-customizable parameters directly from the user's request.
> When the user's message already specifies values (such as region, bucket name, paths, schedule, or MaxAge),
> use those values directly without asking for re-confirmation.
> Only ask the user for clarification when a **required** parameter is genuinely missing from their request
> and cannot be reasonably inferred from context.
The skill contradicts its own boundary about not creating fake local artifacts when prerequisites are missing, then instructs the agent to create a local directory and test file automatically. That can misrepresent the user's real backup source, modify the local filesystem without explicit consent, and lead to uploads of unintended placeholder data that appear to validate the workflow.
The instructions direct the agent to run mkdir and write a file to the user-specified LocalSourcePath when that path does not exist, without an explicit warning or approval for local state changes. This creates unauthorized filesystem modifications and may write into sensitive or unexpected locations if the path was misunderstood but still passes validation.
The skill instructs adding cron entries, which creates persistence on the host by scheduling recurring execution. Even though this matches the business purpose, it is still a security-relevant state change because it can continue running after the session and repeatedly access local data and cloud resources if created without explicit approval.
If
systemctl start crondfails (e.g., no systemd in containers), you can still add cron entries viacrontab— the cron daemon is not strictly required for entry registration, only for actual execution. In such cases, document the cron entry for the user to deploy on their production host, and do not let the missing daemon block the rest of the workflow.
crontab -e
Example entry (use echo ... | crontab - for non-interactive installation):
The schtasks /Create command establishes persistent scheduled execution on Windows, which is a security-sensitive host modification. Although aligned with the skill's purpose, it can create unintended long-lived access to files and cloud credentials if executed automatically without a clear opt-in and preview.
Windows Task Scheduler via local CLI:
schtasks /Create /SC DAILY /ST 03:00 /TN "OSS Scheduled Sync" /TR "C:\tools\oss-sync-upload.bat"
Label this step clearly as OS-local. It is not an Alibaba Cloud API action. Keep the scheduler output minimal and directly actionable; do not explode this step into extra README files, XML exports, PowerShell wrappers, demo payloads, or other auxiliary artifacts unless the user explicitly asks for them.
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.
Cleanup is optional because this skill is intended for recurring sync, but test artifacts and scheduler entries can be removed safely.
**Linux/macOS cron** `[OS-local]`:
- remove the cron line with `crontab -e`
- delete the local script and log file only if the user explicitly wants rollback
**Windows Task Scheduler** `[OS-local]`:
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
tar -xzf aliyun-cli-macosx-latest-amd64.tgz
# Move to PATH
sudo mv aliyun /usr/local/bin/
# Verify
aliyun version
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
tar -xzf aliyun-cli-macosx-latest-amd64.tgz
# Move to PATH
sudo mv aliyun /usr/local/bin/
# Verify
aliyun version
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
tar -xzf aliyun-cli-macosx-latest-amd64.tgz
# Move to PATH
sudo mv aliyun /usr/local/bin/
# Verify
aliyun version
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
tar -xzf aliyun-cli-linux-latest-arm64.tgz sudo mv aliyun /usr/local/bin/
### Windows
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
The file is attached to an OSS scheduled-upload skill, but it provides a broad, general-purpose Aliyun CLI guide covering many authentication modes, ECS operations, plugin installation, debugging, custom endpoints, and other non-OSS workflows. In an agent-skill context, this scope expansion increases the chance an agent or user is guided into unnecessary capabilities and higher-risk actions outside the intended upload-only task boundary.
The environment-variable examples and nearby credential-setting patterns normalize placing long-lived secrets directly in shell commands and environment configuration without consistently warning about shell history, process visibility, inherited environments, and persistence in user profiles or CI logs. In an automation-oriented skill, that omission materially increases the chance of credential leakage.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Restrict permissions
chmod 600 ~/.aliyun/config.json
The guide explicitly encourages installing arbitrary Aliyun product plugins and exploring unrelated service commands. For a narrowly scoped OSS scheduled-sync skill, this broadens available functionality and can steer automation toward unintended cloud services and actions, violating least-privilege and least-capability expectations.
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.
| `aliyun` CLI | `aliyun ossutil cp "${LocalSourcePath}" "oss://${BucketName}/${TargetOssPrefix}" -r -u --max-age "${MaxAge}" --region "${RegionId}" --read-timeout 300 --connect-timeout 30 --user-agent AlibabaCloud-Agent-Skills` | Canonical incremental upload command via integrated ossutil | Not validated locally because `aliyun` was not installed in this repository, and not executed against a live bucket here |
| `aliyun` CLI | `aliyun ossutil ls "oss://${BucketName}/${TargetOssPrefix}" --region "${RegionId}" --read-timeout 60 --connect-timeout 30 --user-agent AlibabaCloud-Agent-Skills` | Verify uploaded objects under the target prefix | Not validated locally because `aliyun` was not installed in this repository, and not executed against a live bucket here |
| `aliyun` CLI | `aliyun ossutil rm "oss://${BucketName}/${TargetOssPrefix}test-object.txt" --region "${RegionId}" --read-timeout 60 --connect-timeout 30 --user-agent AlibabaCloud-Agent-Skills` | Optional cleanup for test artifacts | Not validated locally because `aliyun` was not installed in this repository |
| Local OS | `crontab -l` | Verify cron registration on Linux/macOS | Validated locally |
| Local OS | `schtasks /Query /TN "OSS Scheduled Sync" /V /FO LIST` | Verify Task Scheduler registration on Windows | Not validated locally in this macOS repository |
## OSS Capability Notes
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.
| `aliyun` CLI | `aliyun ossutil cp "${LocalSourcePath}" "oss://${BucketName}/${TargetOssPrefix}" -r -u --max-age "${MaxAge}" --region "${RegionId}" --read-timeout 300 --connect-timeout 30 --user-agent AlibabaCloud-Agent-Skills` | Canonical incremental upload command via integrated ossutil | Not validated locally because `aliyun` was not installed in this repository, and not executed against a live bucket here |
| `aliyun` CLI | `aliyun ossutil ls "oss://${BucketName}/${TargetOssPrefix}" --region "${RegionId}" --read-timeout 60 --connect-timeout 30 --user-agent AlibabaCloud-Agent-Skills` | Verify uploaded objects under the target prefix | Not validated locally because `aliyun` was not installed in this repository, and not executed against a live bucket here |
| `aliyun` CLI | `aliyun ossutil rm "oss://${BucketName}/${TargetOssPrefix}test-object.txt" --region "${RegionId}" --read-timeout 60 --connect-timeout 30 --user-agent AlibabaCloud-Agent-Skills` | Optional cleanup for test artifacts | Not validated locally because `aliyun` was not installed in this repository |
| Local OS | `crontab -l` | Verify cron registration on Linux/macOS | Validated locally |
| Local OS | `schtasks /Query /TN "OSS Scheduled Sync" /V /FO LIST` | Verify Task Scheduler registration on Windows | Not validated locally in this macOS repository |
## OSS Capability Notes
Detected: suspicious.generated_source_template_injection