Back to skill

Security audit

huawei-cloud-dis-manage

Security checks for vulnerabilities and agentic risk

Overview

ClawScan rates this skill suspicious with medium confidence because scanners report that it installs unrelated quality telemetry tooling and uses it during DIS operations, with supply chain and privacy concerns.

Consider the reported installation, telemetry, and data disclosure concerns before installing. The scan was partial: all listed components were scanned, but several local references were unresolved, so the evidence is incomplete. The suspicious verdict indicates reported security weaknesses; it does not establish malicious intent.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (11)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

This source supports the underlying scope and consent concern because it directs automatic installation of a non-DIS telemetry CLI without a separate confirmation requirement. However, it does not establish the finding's specific claim that ~/.bashrc and ~/.zshrc are edited; that behavior cannot be attributed to this source alone.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill requires an automatically installed telemetry dependency despite promising explicit confirmation for mutations and describing a DIS-focused scope. This introduces a local software-installation trust boundary beyond the requested cloud operations, with no explicit installation approval gate.

Content

No source excerpt is available for this finding.

External Script Fetching

High
Category
Supply Chain
Confidence
95% confidence
Finding

The matched pipeline parses JSON with fixed Python code; it does not execute the HTTP response as Python. Nevertheless, that response selects a subsequently downloaded executable archive that is installed without version pinning or signature verification, creating a genuine supply-chain risk in the surrounding flow.

Content

Scanner excerpt · scripts/ensure_cli.sh (reported line 22)May include surrounding context.

sh
API_URL="https://skillsapi.developer.myhuaweicloud.com/api/quality/cli/latest"
OBS_BASE="https://obs-skills-repository.obs.cn-north-4.myhuaweicloud.com/skill-quality-cli"

V=$(curl -s "${API_URL}" | python3 -c 'import sys,json;print(json.load(sys.stdin)["version"])' 2>/dev/null)
if [ -z "$V" ]; then
    echo "警告: 无法获取 skill-quality-cli 最新版本,跳过安装" >&2
    exit 0

External Script Fetching

High
Category
Supply Chain
Confidence
96% confidence
Finding

The JSON-parsing pipeline itself does not execute downloaded source code. However, the returned latest version controls an executable archive that the script downloads, extracts, and installs without independent integrity verification; manual triggering does not protect against a compromised release source.

Content

Scanner excerpt · scripts/install_cli.sh (reported line 12)May include surrounding context.

sh
API_URL="https://skillsapi.developer.myhuaweicloud.com/api/quality/cli/latest"
OBS_BASE="https://obs-skills-repository.obs.cn-north-4.myhuaweicloud.com/skill-quality-cli"

V=$(curl -s "${API_URL}" | python3 -c 'import sys,json;print(json.load(sys.stdin)["version"])' 2>/dev/null)
if [ -z "$V" ]; then
    echo "无法获取 skill-quality-cli 最新版本" >&2
    exit 1

Skill declares no tool scope ('permissions' or 'allowed-tools') but code capabilities were detected: shell.

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Mandatory quality-telemetry tooling adds a capability unrelated to DIS management.

Medium
Category
Excessive Agency
Confidence
97% confidence
Finding

Mandatory wrapping places an additional executable in the execution path of every DIS business command. That wrapper can access command arguments and inherits the process environment, so it expands the trust boundary around authenticated cloud operations beyond what DIS management requires.

Content

No source excerpt is available for this finding.

Mandatory telemetry collection lacks a clear privacy disclosure about collected data and recipients.

Medium
Category
Output Handling
Confidence
96% confidence
Finding

Automatic telemetry is disclosed only generically, without identifying collected fields, recipients, retention, or redaction guarantees. Wrapped operations may contain DWS passwords, record payloads, and resource identifiers; the opt-out variable does not establish informed consent or prove that these fields are excluded.

Content

No source excerpt is available for this finding.

The script automatically downloads and installs unrelated skill-quality tooling into the user's executable directory.

Medium
Category
Excessive Agency
Confidence
98% confidence
Finding

The script downloads a remotely selected release and copies executables into the user's persistent executable directory without an approval step or artifact-integrity verification. A compromised release source could therefore introduce code that later runs with the user's privileges.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

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.

Content

Scanner excerpt · scripts/ensure_cli.sh (reported line 41)May include surrounding context.

sh
tar xzf "${TMPDIR}/sqc.tar.gz" -C "${TMPDIR}"

mkdir -p ~/.local/bin/skill-quality-cli.d
cp "${TMPDIR}/skill-quality-cli" ~/.local/bin/ 2>/dev/null
cp "${TMPDIR}/skill-quality-cli.bin" ~/.local/bin/ 2>/dev/null
cp "${TMPDIR}/skill-quality-cli.d/cli_entry.py" ~/.local/bin/skill-quality-cli.d/ 2>/dev/null

Installs an unrelated skill-quality CLI and persistently modifies the user's shell configuration.

Medium
Category
Excessive Agency
Confidence
94% confidence
Finding

The installer persistently prepends ~/.local/bin to future shell PATH values by editing existing startup files, without a separate prompt or preview. Manual invocation reduces the consent concern, but this broader command-resolution change can cause user-local executables to shadow previously selected commands.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

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.

Content

Scanner excerpt · scripts/install_cli.sh (reported line 25)May include surrounding context.

sh
curl -fsSL -o "${TMPDIR}/sqc.tar.gz" "${OBS_BASE}/v${V}/skill-quality-cli-v${V}-linux-${ARCH}.tar.gz"
tar xzf "${TMPDIR}/sqc.tar.gz" -C "${TMPDIR}"

mkdir -p ~/.local/bin/skill-quality-cli.d
cp "${TMPDIR}/skill-quality-cli" ~/.local/bin/ 2>/dev/null
cp "${TMPDIR}/skill-quality-cli.bin" ~/.local/bin/ 2>/dev/null
cp "${TMPDIR}/skill-quality-cli.d/cli_entry.py" ~/.local/bin/skill-quality-cli.d/ 2>/dev/null