Back to skill

Security audit

huawei-cloud-bcs-manage

Security checks for vulnerabilities and agentic risk

Overview

ClawScan marks this skill suspicious with medium confidence because it reports an unrelated CLI being downloaded and installed without a separate approval step, with unclear telemetry and release verification.

Consider avoiding installation until the separate CLI is optional, its telemetry destination and data are clearly explained, and its release is pinned and authenticated. The scan was partial because one local-path reference was unresolved, so the evidence is incomplete.

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
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (16)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The description omits the persistent telemetry executable installation that the setup instructions introduce without a dedicated impact preview or confirmation. The full document does disclose telemetry, which weakens the concealment allegation, but ordinary BCS authorization should not implicitly authorize installation of unrelated executable code.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The setup workflow introduces persistent installation of a separate executable without a distinct installation approval gate, despite the advertised preview-and-confirm model for writes. Telemetry installation is disclosed in the document, so it is not wholly hidden, but requiring this additional executable expands the trust boundary of a skill used with cloud credentials.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The supplied command targets skill-quality-cli rather than Huawei Cloud BCS or its declared Python SDK. Nothing in the supplied chunk establishes this tool upgrade as a supporting requirement for BCS functionality. The mismatch is limited to this chunk; no broader implementation was supplied.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
92% confidence
Finding

The command changes a quality-reporting flag rather than querying or managing BCS resources. This is not a described capability or an evident implementation requirement for BCS access. The chunk alone does not establish whether any downstream reporting is actually disabled.

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

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).

Content

Scanner excerpt · SKILL.md (reported line 104)May include surrounding context.

md
| Add peers to channel | `batch_add_peers_to_channel` | `POST /v2/{project_id}/blockchains/{blockchain_id}/channels/peers` |
| Remove peers | `batch_remove_peers_from_channel` | `PUT /v2/{project_id}/blockchains/{blockchain_id}/{channel_id}/peers/quit` |
| Remove organizations | `batch_remove_orgs_from_channel` | `PUT /v2/{project_id}/blockchains/{blockchain_id}/{channel_id}/orgs/quit` |
| Delete channel | `delete_channel` | `DELETE /v2/{project_id}/blockchains/{blockchain_id}/channel/{channel_id}` |
| Create instance | `create_new_blockchain` | `POST /v2/{project_id}/blockchains` |
| Update instance | `update_instance` | `PUT /v2/{project_id}/blockchains/{blockchain_id}` |
| Delete instance | `delete_blockchain` | `DELETE /v2/{project_id}/blockchains/{blockchain_id}` |

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

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).

Content

Scanner excerpt · SKILL.md (reported line 107)May include surrounding context.

md
| Delete channel | `delete_channel` | `DELETE /v2/{project_id}/blockchains/{blockchain_id}/channel/{channel_id}` |
| Create instance | `create_new_blockchain` | `POST /v2/{project_id}/blockchains` |
| Update instance | `update_instance` | `PUT /v2/{project_id}/blockchains/{blockchain_id}` |
| Delete instance | `delete_blockchain` | `DELETE /v2/{project_id}/blockchains/{blockchain_id}` |
| Invite members | `batch_invite_members_to_channel` | `POST /v2/{project_id}/members/invitations` |
| Cancel invitation | `delete_member_invite` | `DELETE /v2/{project_id}/members/invitations` |
| Handle invitation | `handle_notification` | `POST /v2/{project_id}/notification/handle` |

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

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).

Content

Scanner excerpt · SKILL.md (reported line 109)May include surrounding context.

md
| Update instance | `update_instance` | `PUT /v2/{project_id}/blockchains/{blockchain_id}` |
| Delete instance | `delete_blockchain` | `DELETE /v2/{project_id}/blockchains/{blockchain_id}` |
| Invite members | `batch_invite_members_to_channel` | `POST /v2/{project_id}/members/invitations` |
| Cancel invitation | `delete_member_invite` | `DELETE /v2/{project_id}/members/invitations` |
| Handle invitation | `handle_notification` | `POST /v2/{project_id}/notification/handle` |
| Quit union | `handle_union_member_quit_list` | `PUT /v2/{project_id}/members/quit` |

External Script Fetching

High
Category
Supply Chain
Confidence
97% confidence
Finding

The matched curl-to-Python pipeline parses JSON using fixed local code; it does not directly execute the response as Python. However, that response selects a release archive which the same script downloads, extracts, and installs without a pinned version or trusted signature verification, creating a supply-chain code-execution path if the distribution source is compromised.

Content

Scanner excerpt · scripts/ensure_cli.sh (reported line 16)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
98% confidence
Finding

The pipeline itself only parses remote JSON, but the returned version controls the archive subsequently downloaded and installed as executable code. No signature or pinned digest is checked before extraction and installation, so compromise of the release infrastructure could turn a legitimate manual installation into arbitrary code execution when the CLI is used.

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: env, file_read, 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.

The guide introduces automatic quality telemetry unrelated to BCS resource management.

Medium
Category
Excessive Agency
Confidence
92% confidence
Finding

The guide explicitly makes telemetry automatic and opt-out without identifying the transmitted fields, receiving service, or retention policy. In a cloud-administration workflow this creates an insufficiently bounded disclosure risk, although this source does not establish that credentials or resource data are actually transmitted.

Content

No source excerpt is available for this finding.

Installs an unrelated skill-quality CLI into the user's persistent executable directory.

Medium
Category
Excessive Agency
Confidence
99% confidence
Finding

When the CLI is absent, this helper downloads an unpinned release and installs executable files into the user's persistent binary directory without a separate approval gate or artifact authentication. A compromised release source could thereby plant code that later runs with the user's privileges; the telemetry purpose does not require this implicit trust expansion.

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 35)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 outside the declared BCS management purpose.

Medium
Category
Excessive Agency
Confidence
98% confidence
Finding

L09–L23 retrieve the latest skill-quality-cli version and download its executable archive, while L25–L30 install executable and reporting components persistently under ~/.local/bin. The manifest describes BCS resource management through huaweicloudsdkbcs, not installing a separate skill-quality tool, and the provided code establishes no BCS-related need for this capability.

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

Several standalone triggers are not specific to Huawei Cloud BCS, including “通道” (channel), “添加节点” (add node), and “下载证书” (download certificate).

Low
Category
Trigger Abuse
Confidence
88% confidence
Finding

Although the surrounding description identifies Huawei Cloud BCS as the skill's purpose, these entries are presented as activation triggers without requiring that context. They also describe unrelated networking, infrastructure, and certificate tasks, which could cause unintended skill selection.

Content

No source excerpt is available for this finding.