Back to skill

Security audit

Tencent Cloud TIONE

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed Tencent Cloud TI-ONE read-only query helper, with the main caution being unpinned dependency installation and use of cloud credentials.

Install only if you are comfortable using Chinese-language tooling, and use dedicated Tencent Cloud credentials limited to read-only TI-ONE Describe permissions. Prefer installing tccli in an isolated environment and pinning/verifying the package version before exposing cloud credentials.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:20
Finding

Unpinned Public Package Installation in a Credential-Bearing Environment

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:20-28
Additional Locations: SKILL.md:64-66, scripts/common.sh:54-56
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: Medium

Vulnerable Code

json
"install":
[
  {
    "id": "pip-tccli",
    "kind": "pip",
    "package": "tccli",
    "bins": ["tccli"],
    "label": "Install tccli (Tencent Cloud CLI)"
  }
]

The documentation also directs users to perform the same unpinned installation:

bash
# tccli (Tencent Cloud CLI, used internally)
pip3 install tccli

The runtime dependency check repeats this recommendation:

bash
if [[ ${#missing[@]} -gt 0 ]]; then
    log_error "Missing dependency tools: ${missing[*]}"
    log_error "Please install first: pip3 install tccli && apt install jq"
    exit 1
fi

Technical Analysis

The Skill installs tccli from a public Python package index without specifying an exact version or verifying artifact integrity. Consequently, the package and its transitive dependencies can change after this Skill has been reviewed.

Python package installation can execute package-controlled build or installation logic. The installed CLI is subsequently invoked by scripts/common.sh while TENCENTCLOUD_SECRET_ID and TENCENTCLOUD_SECRET_KEY are present in the process environment. A compromised package release, publisher account, configured package index, or transitive dependency could therefore execute code locally and access those credentials.

This finding represents a supply-chain exposure rather than evidence that the currently referenced package is malicious. The audited project itself contains no confirmed credential-exfiltration or malicious execution logic.

Attack Path

  1. An attacker compromises the tccli package distribution, one of its transitive dependencies, its publisher account, or a package index used by the host. ...[truncated 1423 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin tccli to a reviewed exact version in the installation metadata and documentation:

    json
    {
      "id": "pip-tccli",
      "kind": "pip",
      "package": "tccli==REVIEWED_VERSION",
      "bins": ["tccli"],
      "label": "Install pinned Tencent Cloud CLI"
    }
    
  2. Maintain a locked dependency file containing hashes for tccli and all transitive dependencies, and install it with hash enforcement:

    bash
    python3 -m pip install --require-hashes -r requirements.lock
    
  3. Obtain packages only from an explicitly configured, trusted repository or verified vendor distribution. Document the expected publisher and artifact provenance.

  4. Verify package hashes or signatures before installation. Update pinned versions only after reviewing release provenance and dependency changes.

  5. Install the CLI in a dedicated virtual environment or isolated container under a nonprivileged account. Do not use root or unrestricted sudo installation.

  6. Provide cloud credentials only at execution time, after dependency installation has completed, and use narrowly scoped, read-only IAM credentials dedicated to this Skill.

  7. Replace the unpinned recommendation in scripts/common.sh:56 and SKILL.md:66 with the same version-locked, integrity-verified installation procedure.

Vulnerability Patterns
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (17)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The declared description says the skill is a TI-ONE query toolkit supporting many platform modules and query operations. However, the supplied code chunk does not query Tencent Cloud APIs or retrieve resource information at all. Its function is narrowly limited to mapping region names to region IDs and constructing console URLs for a few resource types, then returning them in JSON. This is a materially different behavior from a general-purpose query tool, so the description does not accurately represent this code chunk.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

文档要求在特定场景下必须告知用户固定的中文回复,例如“出于安全考虑,无法展示密钥内容”和“当前技能暂不支持该操作”。这是自然语言层面的语言/locale 约束,但文件中未说明仅面向中文用户,也未提供语言选择或用户 opt-in,符合语言策略违规特征。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

该参考文档从标题到正文全部使用中文描述,但没有说明这是面向特定中文用户群体的区域性文档,也未提供语言/locale 选择。按规则,未经过用户选择而强制单一语言属于自然语言层面的语言政策风险。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This shell file contains user-facing natural-language comments and help text exclusively in Chinese, including the skill description and operational guidance. Under the language/locale policy, forcing a specific language without user opt-in or justification is a policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script's comments, help text, and error/log messages are all presented in Chinese, including usage guidance and runtime output. This imposes a specific language on users without any opt-in, fallback, or documentation that the skill is intentionally limited to a Chinese-speaking context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This shell script presents its description, usage output, error messages, and operational logs entirely in Chinese, which imposes a specific language on all users. The file does not offer any locale selection, fallback language, or indication that the skill is intentionally region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The user-facing comments and help/usage output are entirely in Chinese, including the command description, options, and examples. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is clearly documented and justified, which is not present here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

This shell skill presents its description, usage output, option help, examples, and runtime log messages only in Chinese. That creates a language/locale policy concern because the skill forces a specific language for user interaction without offering any opt-in or alternative.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The user-facing comments, usage text, errors, and help output are entirely in Chinese, which imposes a specific language/locale on all users of the skill. There is no indication that the tool is region-specific or that users can opt into another language, which matches the language/locale policy violation criterion.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script's comments, usage text, and error/help messages are entirely in Chinese, which imposes a specific language on users without offering a language or locale choice. Under the policy for natural-language violations, this is a locale/language constraint that is not documented as optional or region-justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

All user-facing natural-language strings in comments, help text, and error messages are in Chinese, which imposes a specific language on users. The file does not offer an English alternative, user opt-in, or any documented reason that this skill must be Chinese-only.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

Comments, usage text, help output, and log/error messages are all written in Chinese, which imposes a specific language on users. The file does not provide any opt-in, locale selection, or justification for this language constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

该脚本的注释、用法说明、参数帮助和日志消息均为中文,且文件中没有提供语言切换、双语输出或对语言范围的明确说明。根据规则,未经用户选择而固定语言/locale 属于自然语言层面的组织策略风险。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

This shell script's natural-language strings, including the description, usage text, option help, and error/log messages, are entirely in Chinese. Under the policy for natural-language content, forcing a specific language without user opt-in or a documented locale-specific justification is a policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

All user-facing natural-language content in the script, including comments, usage text, option descriptions, and examples, is presented only in Chinese. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy violation unless a locale restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

User-facing comments and CLI help text are entirely in Chinese, including usage, options, and error/help messaging. This can violate a language/locale policy when a skill forces a specific language without offering user choice or documenting a locale-specific constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file contains user-facing comments, usage output, examples, and log/error strings entirely in Chinese, such as the usage text and "未知参数" message. Under the policy rule, forcing a specific language without user opt-in can be a natural-language policy violation when no alternative locale or scope limitation is provided.

Content

No source excerpt is available for this finding.