Back to skill

Security audit

Cloudnet AI Inspection

Security checks for vulnerabilities and agentic risk

Overview

This WLAN inspection skill is mostly purpose-aligned, but it handles a Cloudnet API key in ways that can expose and persist the credential.

Install only if you are comfortable providing a Cloudnet API key to this workflow. Use a narrowly scoped, revocable key; avoid printing config files that contain secrets; check where mcporter stores its configuration; remove or rotate the token after use; and prefer pinned dependencies in an isolated environment instead of global npm/pip installs.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:47
Finding

Unpinned Third-Party Dependency Installation

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:27
Finding

Plaintext API Key Exposure and Persistent Bearer-Token Configuration

Content
View full analysis
💡 `shops` 只需填写 `name`(场所名称),shopId 在巡检时由第1步 API 自动获取。 如果 `api_key` 为占位文本(如"在此填入"),提示用户填入真实 API Key 后重新巡检。 ``` ```markdown ### 0.3 检查并配置Cloudnet MCP连接 **唯一MCP地址(正式环境):** ``` https://oasis.h3c.com/mcp-server/api/sse ``` ```bash mcporter config list ``` - 如果列表中已存在 `mcporter_name` 对应的配置 → ✅ 通过 - 如果不存在 → 自动执行配置: ```bash mcporter config add https://oasis.h3c.com/mcp-server/api/sse --header "Authorization=Bearer " ``` ``` ### Technical Analysis The Skill requires a Cloudnet API key to be stored directly in `config.json`, instructs the Agent to print that entire file with `cat`, and then places the key into a bearer-token header supplied through a command invocation. Printing the configuration can disclose the key through terminal output, Agent tool transcripts, orchestration logs, shell recording, or captured diagnostic output. Passing the key in a command can also expose it to shell history, process inspection, command telemetry, or audit logs, depending on the operating system and execution environment. The `mcporter config add` command may persist the authorization header in local configuration. The Skill does not identify the storage location, require restrictive permissions, verify encryption at rest, redact the token, or remove it after inspection. The precise persistence behavior of `mcporter` cannot be verified because the package contains no implementation of that external tool. ### Attack Path 1. A user places a valid Cloudnet API key in `config.json` as directed. 2. The Agent executes `cat config.js ...[truncated 1528 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The description requires output in Chinese MD and DOCX formats, and later requirements state “全部中文,” but there is no user opt-in or selectable language option. This is a natural-language locale policy issue because the skill forces a specific language regardless of user preference.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger list includes generic phrases such as “巡检” and “极简版巡检”, which are broad and could overlap with ordinary requests for inspection rather than this specific Cloudnet WLAN skill. The description does not provide activation constraints, scope limits, or negative examples to clarify when the skill should or should not invoke.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill explicitly instructs reading a local config.json that contains a live API key and then using that key on the command line to configure mcporter. This creates credential exposure risk through terminal history, process listings, logs, screenshots, and accidental model disclosure if file contents are echoed back or summarized to the user.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The instructions explicitly require all report content to be in Chinese, preserving only technical acronyms in English. Because no language selection or opt-in mechanism is provided, this imposes a fixed locale on all users and violates the language-choice policy.

Content

No source excerpt is available for this finding.