Back to skill

Security audit

huawei-cloud-optv-evolve-management

Security checks for vulnerabilities and agentic risk

Overview

This skill needs review because its optional cloud-storage setup grants excessive permanent permissions, and some instructions risk exposing credentials or private files.

Before use, have an administrator narrow the optional delegation to necessary actions and the selected bucket/prefix, verify the trusted principal, and define expiry and removal. Skip OBS delegation when unnecessary. Upload only reviewed files from a staging directory; disabling OBS output still sends source code to OptVerse. Keep credentials out of agent memory and redact support payloads. Verify the CLI download before installation. Static inspection resolved the material scanner gaps, but external companion skills and effective cloud permissions were not tested.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (1)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
references/iam-agency.md
Finding

Result-upload setup delegates unscoped destructive OBS permissions

Content
View full analysis

Impact

The delegate obtains permissions to read or delete unrelated objects and versions and modify bucket access policies, subject to any independently configured explicit denies. The delegation remains after the evolution task ends.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
Findings (40)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

Inspecting and listing agencies are reasonable supporting operations for the declared IAM setup. However, modifying agencies, revoking their policies, and deleting them extend beyond the stated capability to create a trust agency and grant algorithm-design bucket permissions. These commands are not explicitly restricted to LLM4AD-related agencies. The deletion comment mentions two-step confirmation, but the supplied command does not implement such a safeguard.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
90% confidence
Finding

Listing authorizations and buckets supports the declared permission-setup workflow. However, revoking an existing authorization is a distinct, potentially disruptive capability not covered by the stated agency-creation and permission-granting purpose. The use of OptVerse rather than IAM is not itself the mismatch; the undeclared revocation operation is.

Content

No source excerpt is available for this finding.

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
loud IAM ...` call, dispatch `scripts/precheck.sh` (Linux / Git Bash / WSL) or `scripts/precheck.ps1` (Windows PowerShell) via `skill action=exec`. The precheck

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
powershell scripts/precheck.ps1

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| `powershell` on PATH | Windows PowerShell 5.1 (system-installed, widespread) | `powershell scripts/precheck.ps1` |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
If `precheck.sh` / `precheck.ps1` cannot run, see [`references/prerequisites.md`](references/prerequisites.md) §2.1 "5-line manual probe" for the 5 manual verif

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Direct shell + relative path (cwd must be at skill root) | `powershell scripts/precheck.ps1` | bash / PowerShell tool calls directly; requires cwd already at

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `precheck.sh` / `precheck.ps1`: 5-item one-shot environment check

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
`precheck.sh` / `precheck.ps1` cannot run, see [`references/prerequisites.md`](references/prerequisites.md) §2.1 "5-line manual probe" for the 5 manual verific

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| [references/prerequisites.md](references/prerequisites.md) | Credentials, environment, project ID |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
See [`references/parameter-format.md`](references/parameter-format.md) §7 "CreateEvolveTask required-field 3-layer breakdown" for the full 6-field table; the sa

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
enum / size-limit / JMESPath syntax lives in [`references/parameter-format.md`](references/parameter-format.md). This section is a quick **A/B/C classification*

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
ions`** (**required**): number of evolution rounds; see [`parameter-format.md`](references/parameter-format.md) for the full `--evaluator_parameter.*` syntax

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| [references/parameter-format.md](references/parameter-format.md) | Parameter forms, nesting, arrays, JMESPath |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| [references/plan-maintenance.md](references/plan-maintenance.md) | **(agent-side, optional)** `plan` / `scratchpad` tool maintenance (multi-step task state-ma

The agency policy grants destructive OBS administration capabilities unrelated to storing evolve-task results.

High
Category
Excessive Agency
Confidence
99% confidence
Finding

The delegated policy includes bucket deletion, policy and ACL modification, object deletion, and other administrative actions beyond storing evolution results, without an explicit resource restriction. Combined with the FOREVER agency lifetime, compromise or misuse of the trusted service could enable persistent data destruction, disclosure, or access-control changes beyond the intended output location.

Content

No source excerpt is available for this finding.

Skill declares no tool scope ('permissions' or 'allowed-tools') but code capabilities were detected: env, file_read, file_write, 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 upload workflow lacks a privacy warning about sending source code to Huawei Cloud.

Medium
Category
Output Handling
Confidence
90% confidence
Finding

The standard workflow instructs the agent to upload algorithm, evaluator, and baseline files to Huawei Cloud, but provides no warning to check for secrets, confidential code, or restrictions on third-party processing. The default 'no OBS upload' scenario still uploads these source files to OptVerse; it only disables the separate result upload.

Content

No source excerpt is available for this finding.

The execution guidance permits direct shell invocation despite explicitly requiring Skill Runtime isolation.

Medium
Category
Excessive Agency
Confidence
94% confidence
Finding

The document mandates execution through the Skill Runtime but later permits direct shell execution as an alternative. This contradictory fallback can lead an agent to bypass runtime isolation, approval, or auditing controls where those controls are provided by the wrapper; actual impact depends on the runtime.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
| ❌ Anti-pattern | Why it's bad |
|---|---|
| `requests.post('https://optverse...', json=...)` direct to OpenAPI | Bypasses KooCLI auth / error handling / retry / `--debug` logging; crosses the "direct OpenAPI" red line |
| `--key value` space-separated | bash splits it as `--key=` (empty value) + `value` (independent token); PowerShell `$VAR` doesn't expand |
| `python -c "import subprocess; ..."` self-forking hcloud | Bypasses agent-framework isolation / cache semantics; inconsistent with Skill Runtime's script-call mechanism |

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
| ❌ Anti-pattern | Why it's bad |
|---|---|
| `requests.post('https://optverse...', json=...)` direct to OpenAPI | Bypasses KooCLI auth / error handling / retry / `--debug` logging; crosses the "direct OpenAPI" red line |
| `--key value` space-separated | bash splits it as `--key=` (empty value) + `value` (independent token); PowerShell `$VAR` doesn't expand |
| `python -c "import subprocess; ..."` self-forking hcloud | Bypasses agent-framework isolation / cache semantics; inconsistent with Skill Runtime's script-call mechanism |

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
When starting a task, the agent decides where each parameter comes from by following the three categories below — **first fill from A, then collect from B, finally cover with C defaults**.

### 8.1 A. Pre-configured (Agent retrieves automatically, do NOT ask user)

| Parameter | Source |
|---|---|

The upload workflow sends local source files to a cloud service without a privacy warning.

Medium
Category
Output Handling
Confidence
94% confidence
Finding

The workflow instructs the agent to archive the local source directory and upload it through hcloud OptVerse. Although the upload is clearly described, there is no warning that source code or sensitive content in the archive will leave the local system and be transmitted to the cloud service.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
87% confidence
Finding

Using sudo for a system-wide installation is not inherently unsafe, but this sequence promotes an unverified executable from a predictable shared temporary path into a trusted system PATH directory. A compromised download or local file-substitution attack could install a malicious CLI that subsequently receives cloud credentials and privileged IAM commands.

Content

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

Download the release binary (verify the URL against the official Huawei Cloud docs)

curl -L -o /tmp/hcloud.tar.gz "" tar -xzf /tmp/hcloud.tar.gz -C /tmp sudo mv /tmp/hcloud /usr/local/bin/hcloud hcloud version

text

The upload workflow sends project files to OptVerse without a privacy warning.

Medium
Category
Output Handling
Confidence
94% confidence
Finding

The workflow instructs the agent to upload the project ZIP to OptVerse, transmitting source code and any other included files to an external service. It does not warn users about this disclosure or instruct them to review the archive for credentials, confidential code, or other sensitive content before uploading.

Content

No source excerpt is available for this finding.