Back to skill

Security audit

huawei-cloud-obs-bucket-create

Security checks for vulnerabilities and agentic risk

Overview

This skill creates cloud storage buckets but also requires an unverified telemetry tool around credential commands and can automatically select public access.

Review before installing. Require explicit approval for public access, use narrowly scoped cloud credentials, and configure credentials outside the telemetry wrapper. Verify pinned downloads and inspect the reporting implementation first. SKILL_QUALITY_REPORT=0 is documented, but its effectiveness and the downloaded tool's data handling could not be verified from this bundle.

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
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (15)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill adds installation of a remote quality-management executable and requires it to wrap cloud commands, extending trust beyond the bucket-management task. Although the dependency is disclosed in the body, automatically installing unverified code creates a supply-chain risk in an environment 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 code only invokes a listing command. It contains no bucket creation, property configuration, or access-permission changes. Although listing could support a creation workflow, no such workflow is present in the supplied chunk, making its implemented primary behavior materially different from the declared purpose.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The additional CLI introduces persistent executable code unrelated to OBS bucket creation, and the installation flow does not authenticate the downloaded release. Making that executable mandatory for cloud operations exposes credential-bearing execution to a compromised dependency, although no malicious dependency behavior is demonstrated.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

Although the command targets the declared cloud service and resource type, its only visible operation is stat. Inspection could support a creation workflow, but no such workflow appears in the supplied code, making the implemented primary behavior materially different from the declared purpose.

Content

No source excerpt is available for this finding.

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

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

md
| sa-brazil-1 | Latin America-Sao Paulo 1 | eu-west-101 | Europe-Paris 2 |
| eu-west-0 | Europe-Paris 1 | | |

Return prompt text:
>Once a bucket is created successfully, the region cannot be changed, please choose carefully. The region you want to create the bucket in is ${region}

### Step 3: Create Bucket

External Script Fetching

High
Category
Supply Chain
Confidence
96% confidence
Finding

The command immediately executes a mutable remote installer without verifying its signature or pinning its contents. The vendor-associated HTTPS endpoint supports a legitimate installation purpose, but a compromised distribution source could execute arbitrary code, with greater impact if the suggested root execution is used.

Content

Scanner excerpt · references/cli-installation-guide.md (reported line 14)May include surrounding context.

Linux and MacOS System Installation

bash
curl -sSL https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh

The above command downloads KooCLI to "/usr/local/hcloud/" directory by default and moves it to "/usr/local/bin/" directory for convenient use of hcloud command in any directory (before completing this step, please ensure PATH system variable contains "/usr/local/bin/" path).

External Script Fetching

High
Category
Supply Chain
Confidence
96% confidence
Finding

This variant also downloads and executes an unpinned installer without authenticity verification. The -y option removes installer interaction, reducing opportunities to inspect changes before remote code modifies the system.

Content

Scanner excerpt · references/cli-installation-guide.md (reported line 22)May include surrounding context.

If you want to use default configuration and skip interactive mode, you can add "-y" at the end of the command, as follows:

bash
curl -sSL https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh -y

Windows System Installation

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

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
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

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.

The bucket-creation skill requires automatic quality telemetry in addition to the OBS operations described in its manifest.

Medium
Category
Excessive Agency
Confidence
92% confidence
Finding

Mandatory telemetry wrapping gives an additional executable access to cloud-command arguments and potentially their output, including the documented AK/SK configuration command. Telemetry is disclosed and can be disabled, but its payload and redaction guarantees are not supplied, so actual credential transmission is unproven while the exposure path is real.

Content

No source excerpt is available for this finding.

The bucket-creation skill downloads and persistently installs an unrelated skill-quality CLI.

Medium
Category
Excessive Agency
Confidence
98% confidence
Finding

The script automatically selects a remotely supplied latest version and installs its executable and Python components without signature or digest verification. Compromise of the release service or artifact repository could therefore introduce persistent attacker-controlled code under the user's account.

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 OBS bucket-management purpose.

Medium
Category
Excessive Agency
Confidence
96% confidence
Finding

Manual invocation makes installation more explicit, but the script still installs remotely selected executable components without authenticating their contents. A compromised release source could supply code that subsequently runs with the user's privileges; being an unrelated tool alone would not establish a vulnerability.

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