T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:17- Finding
Unverified Remote Executable Download and Installation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This UCloud skill mostly matches its cloud-operations purpose, but it needs review because it can install a CLI, use local cloud profiles, create public billable resources by default, and expose login credentials.
Review this skill before installing. Use it only with a least-privilege UCloud profile and a non-production project where possible. Require explicit confirmation before any create, update, delete, EIP binding, or public exposure; verify the UCloud CLI release yourself before installation; avoid fixed shared temporary files for API payloads; and do not allow host passwords or other login credentials to be printed in chat summaries. If any credential has already been displayed, rotate it.
SKILL.md:17Unverified Remote Executable Download and Installation
SKILL.md:91Predictable Shared Temporary File for Cloud API Payloads
references/deployment.md:7Cloud Host Login Credentials Included in User-Facing Summaries
references/products/eip.md:3Automatic Creation and Binding of a Public IP Address
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
## 凭据约定
官方 CLI 将 profile 存储在 `~/.ucloud/config.json` 和 `~/.ucloud/credential.json` 中。
将 profile 作为本技能的主要凭据来源。
CLI 提供 `ucloud auth login`、`ucloud init`、`ucloud config add`、`ucloud config update` 和 `ucloud config list`。优先使用 OAuth 登录处理交互式人工授权;AK/SK 初始化和配置变更是敏感操作,因为 `config add/update` 的 flag 包含 public key 和 private key。
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
{"Action":"ListRegions"}
EOF
ucloud api --local-file /tmp/ucloud-request.json
rm -f /tmp/ucloud-request.json
# ListZones(需要 Region)
cat > /tmp/ucloud-request.json << 'EOF'
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
{"Action":"ListRegions"}
EOF
ucloud api --local-file /tmp/ucloud-request.json
rm -f /tmp/ucloud-request.json
# ListZones(需要 Region)
cat > /tmp/ucloud-request.json << 'EOF'
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
{"Action":"ListRegions"}
EOF
ucloud api --local-file /tmp/ucloud-request.json
rm -f /tmp/ucloud-request.json
# ListZones(需要 Region)
cat > /tmp/ucloud-request.json << 'EOF'
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
{"Action":"ListRegions"}
EOF
ucloud api --local-file /tmp/ucloud-request.json
rm -f /tmp/ucloud-request.json
# ListZones(需要 Region)
cat > /tmp/ucloud-request.json << 'EOF'
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
{"Action":"ListRegions"}
EOF
ucloud api --local-file /tmp/ucloud-request.json
rm -f /tmp/ucloud-request.json
# ListZones(需要 Region)
cat > /tmp/ucloud-request.json << 'EOF'
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
{"Action":"ListRegions"}
EOF
ucloud api --local-file /tmp/ucloud-request.json
rm -f /tmp/ucloud-request.json
# ListZones(需要 Region)
cat > /tmp/ucloud-request.json << 'EOF'
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
{"Action":"ListRegions"}
EOF
ucloud api --local-file /tmp/ucloud-request.json
rm -f /tmp/ucloud-request.json
# ListZones(需要 Region)
cat > /tmp/ucloud-request.json << 'EOF'
The skill explicitly instructs the agent to display sensitive access details, including login credentials, after resource creation. In a cloud operations context, exposing credentials in normal output can leak secrets through chat history, logs, screenshots, downstream tool telemetry, or to unintended viewers, enabling unauthorized access to newly created infrastructure.
Displaying newly created resource login credentials in plain-language output is a direct secret disclosure risk. Because this skill performs real UCloud resource operations, any leaked initial password could allow immediate compromise of the instance or service, especially if the account is privileged and the credential persists beyond first use.
The top-level description says the skill should be used whenever a user wants to deploy a web app or put a service online, even if they did not explicitly ask for a cloud product. That broad trigger can cause the agent to select a real cloud-operation skill for vague deployment discussions, raising the risk of unintended infrastructure actions against a live account.
The 'strong trigger signal' list contains broad natural-language phrases like deploying a web program, putting a service online, or opening public access, without boundary conditions. In a high-impact cloud skill, such ambiguous activation logic can misroute ordinary planning requests into a tool that performs live infrastructure operations.
L136 规定“默认使用简洁的 Markdown”并配合固定标签,但全文整体以中文指令强约束输出行为,未见向用户提供语言选择或在用户偏好非中文时切换的说明。对语言/locale 的默认强制如果没有用户选择机制,可能违反语言选择相关组织政策。
The skill includes a generic shell recipe to generate passwords using /dev/urandom, which is not necessary for operating UCloud resources and expands the skill into unrelated secret-generation behavior. In an agent setting, this can encourage the model to create or handle credentials outside the cloud platform’s managed flows, increasing the chance of insecure secret handling or inappropriate use in unrelated contexts.
This JSON eval file contains all prompts, expectations, and assertions exclusively in Chinese and implicitly evaluates the skill in that language. There is no natural-language indication that language selection is optional or user-driven, so the file enforces a specific locale without opt-in.
标题及全文均以中文编写,未见提供语言/locale 选择、用户 opt-in,或说明该技能仅适用于特定中文场景。根据规则,强制特定语言而无选择属于自然语言策略违规。
The markdown describes activation based on broad phrases such as “部署我的 WEB 服务” and “把这个站点上线”, then generalizes to WEB or generic application deployment requests. It does not define clear exclusions or negative examples, so ordinary conversational deployment requests could ambiguously trigger this skill in unintended contexts.
The file title and all user-facing guidance are written in Chinese, with no indication that the user can choose another language or that the skill is restricted to a Chinese-speaking context. This creates a natural-language policy issue because it effectively imposes a locale on users without opt-in or justification.
The file’s title and all operational instructions are written only in Chinese, with no indication that the user can choose another language or that the skill is intentionally limited to a Chinese-language context. This creates a natural-language policy concern because it implicitly enforces a locale/language without opt-in.
The file content is entirely in Chinese and provides operational guidance without indicating that language selection is optional or limited to a region-specific use case. This creates a natural-language policy concern because it effectively imposes a locale on users without opt-in.
The file is written entirely as Chinese-only product rules and maps product terminology in Chinese, but it does not indicate that the language restriction is optional or limited to a region-specific use case. Under the policy, forcing a specific language or locale without user opt-in is a natural-language policy violation.
The natural-language fields short_description and default_prompt are written only in Chinese, which can constitute a language/locale policy issue when no user opt-in or alternative language is offered. The file does not document that the skill is region-specific or that Chinese is an intentional, justified locale constraint.
No suspicious patterns detected.