Back to skill

Security audit

云迁移CMG

Security checks for vulnerabilities and agentic risk

Overview

This cloud-migration skill mostly matches its purpose, but it should be reviewed because it handles raw cloud credentials, precompiled scanners, remote topology sharing, and persistent infrastructure reports without enough containment guidance.

Install only if you are comfortable using this skill for real cloud-migration assessment. Use least-privilege temporary cloud credentials, avoid pasting secrets into chat, avoid command-line AK/SK where possible, verify any downloaded scanner binary before execution, choose a trusted MCP server because resource topology is sent there, and treat generated JSON/Excel/HTML reports as confidential infrastructure data.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Vague Triggers

Medium
Confidence
91% confidence
Finding
The trigger list contains broad conversational phrases such as “帮我推荐 / 给我推荐 / 推荐规格,” which can match ordinary user requests outside the narrow cloud-migration context. This can cause unintended invocation of a skill that has Browser and Bash access and may prompt configuration or external network actions, increasing the chance of accidental data exposure or unnecessary execution of operational steps.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The guidance instructs users to configure source-side AK/SK and database connection information for migration tasks, but it provides no warning about treating these as sensitive secrets. In a migration skill, this omission increases the chance users will expose credentials in chat, logs, screenshots, or insecure operational workflows, which could lead to unauthorized access to source systems or data.

Missing User Warnings

Medium
Confidence
87% confidence
Finding
The file storage migration section tells users to mount source and target file systems and perform data synchronization, but it omits warnings about overwrite, deletion, permission propagation, or production impact during sync. In a migration context, missing cautions can cause unintended data loss, corruption, or service disruption if users run synchronization against live or misconfigured paths.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill instructs users to provide cloud Access Key/Secret credentials and to run pricing workflows with them, but does not include safeguards on secure handling, least privilege, storage restrictions, redaction, or rotation. In an agent setting, this increases the risk of users exposing long-lived cloud credentials to logs, prompts, scripts, or third-party tooling, which could enable unauthorized access to cloud resources and broader account compromise.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The script writes scanned cloud inventory to scan_result.json by default, including instance IDs, names, regions, disk layouts, bandwidth, and billing metadata. In agent or shared-workstation contexts, this creates unnecessary persistence of sensitive infrastructure metadata that could aid reconnaissance or expose business-sensitive deployment details if the output directory is accessible to others.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The generated pricing_data.json contains detailed infrastructure and pricing information for both source and target environments, which can reveal topology, sizing, and cost structure. In a migration-assistant skill, such reports are likely to be shared or stored automatically, increasing the chance of unintended disclosure of commercially sensitive information.

Unbounded Output

Medium
Category
Output Handling
Content
def _auto_width(ws: Any) -> None:
    """自动列宽"""
    for col in ws.columns:
        max_length = 0
        col_letter = get_column_letter(col[0].column)
        for cell in col:
            if cell.value:
Confidence
79% confidence
Finding
The report generator derives Excel column widths by iterating every cell and converting each value to a string, which makes processing cost scale with untrusted input size and content length. In this skill context, a large or adversarial pricing JSON could trigger excessive CPU/memory use or generate oversized reports, causing denial of service or operational instability during report generation.

Static analysis

No suspicious patterns detected.