Back to skill

Security audit

huawei-cloud-account-onboarding

Security checks for vulnerabilities and agentic risk

Overview

This skill coherently checks Huawei Cloud verification status and guides user-controlled face verification, with dependency and QR privacy precautions.

This is a community skill, not an official Huawei product. Configure hcloud credentials yourself. Use reviewed, locked dependencies and avoid unexpected runtime downloads. Render only URLs returned directly by hcloud, verify the hostname is auth.huaweicloud.com, and keep QR codes and terminal output private because they contain a one-time credential.

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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

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

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.

MCP server referenced without pinned version: 'npx tsx'.

Medium
Category
MCP Rug Pull
Confidence
85% confidence
Finding

This is not an MCP server reference, but the documented npx tsx command can download and execute an unpinned package if a local installation is unavailable. Compromised dependency code would run in a context potentially containing Huawei Cloud credentials and the one-time verification URL, making supply-chain compromise consequential despite the intended read-only workflow. A pinned local dependency and committed lockfile could reduce this risk, but those files are not provided and the documented command does not require their use.

Content

No source excerpt is available for this finding.

MCP server referenced without pinned version: 'npx tsx'.

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

Although this command is not an MCP server invocation, npx tsx can download and execute an unpinned package when no local installation is available. A compromised package release could execute with the agent's privileges, potentially accessing the configured Huawei Cloud credentials and the one-time verification URL passed as an argument. The read-only API restrictions do not constrain malicious package code.

Content

No source excerpt is available for this finding.

MCP server referenced without pinned version: 'npx tsx'.

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

The executable shebang invokes an unversioned npm runner, not an MCP server. If a local tsx installation is unavailable, npx can resolve and download a registry version, introducing a supply-chain execution risk; compromised runner code could access the verification URL passed as an argument and other resources available to the process. A locked local installation would reduce this risk, but none is established by the supplied file.

Content

No source excerpt is available for this finding.

MCP server referenced without pinned version: 'npx tsx'.

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

MCP server referenced without pinned version: 'npx tsx'.

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
85% confidence
Finding

The caret range permits later compatible qrcode releases, introducing a low-severity supply-chain risk if installations resolve dependencies without an enforced lockfile. A compromised release could execute in the local agent environment; the skill's read-only cloud workflow would not constrain dependency code, although no compromised package or unsafe installation process is demonstrated here.

Content

Scanner excerpt · scripts/package.json (reported line 10)May include surrounding context.

json
"node": ">=18"
  },
  "dependencies": {
    "qrcode": "^1.5.4",
    "tsx": "^4.23.12"
  },
  "devDependencies": {

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
85% confidence
Finding

The caret range allows tsx to change between installations unless a lockfile is enforced, creating a low-severity dependency-integrity weakness. Because tsx executes TypeScript tooling, a compromised update could affect the agent's execution environment, but this manifest alone provides no evidence of such a compromise.

Content

Scanner excerpt · scripts/package.json (reported line 11)May include surrounding context.

json
},
  "dependencies": {
    "qrcode": "^1.5.4",
    "tsx": "^4.23.12"
  },
  "devDependencies": {
    "@types/node": "^26.2.0",

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
80% confidence
Finding

The @types/node version range can resolve to unreviewed updates when development dependencies are installed without an enforced lockfile. Its role as a development-only type package reduces direct runtime exposure, but development and build environments still face dependency supply-chain risk; no malicious behavior is shown.

Content

Scanner excerpt · scripts/package.json (reported line 14)May include surrounding context.

json
"tsx": "^4.23.12"
  },
  "devDependencies": {
    "@types/node": "^26.2.0",
    "@types/qrcode": "^1.5.6"
  }
}

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
80% confidence
Finding

The @types/qrcode caret range permits compatible updates that may not have been reviewed if installation does not enforce a lockfile. This is a low-severity supply-chain weakness with reduced exposure because the package is a development dependency, rather than evidence of an exploitable or malicious package.

Content

Scanner excerpt · scripts/package.json (reported line 15)May include surrounding context.

json
},
  "devDependencies": {
    "@types/node": "^26.2.0",
    "@types/qrcode": "^1.5.6"
  }
}

Static analysis

No suspicious patterns detected.