Back to skill

Security audit

☁️ TCED Cloud Drive | 腾讯云企业网盘

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed Tencent Cloud Enterprise Drive integration for OAuth-based cloud file management, with expected credential and remote-file access risks.

Install only if you intend to let this MCP server access your Tencent Cloud Enterprise Drive. Keep the npm package version pinned, verify the package source where possible, keep TCED_PAN_DOMAIN and TCED_BASE_PATH on official Tencent endpoints, and protect ~/.tced-mcp/auth.json because it contains OAuth tokens.

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:76
Finding

Unverified npm Package Is Fetched and Executed at Runtime

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 76-83
Vulnerability Type: Supply-chain exposure through runtime dependency retrieval
Risk Level: Medium

Vulnerable Code

json
{
  "mcpServers": {
    "tced-mcp": {
      "command": "npx",
      "args": ["-y", "tced-mcp@1.0.2"],
      "env": {
        "TCED_PAN_DOMAIN": "https://pan.tencent.com",
        "TCED_BASE_PATH": "https://api.tencentsmh.cn"
      }
    }
  }
}

Technical Analysis

The recommended configuration uses npx -y to resolve and execute the external tced-mcp@1.0.2 npm package. Pinning a specific version reduces exposure to unintended future upgrades, but it does not authenticate the package contents. This project does not include the dependency source, a lockfile containing an integrity hash, a verified signature, or reproducible-build provenance.

Consequently, the security-sensitive implementation cannot be audited from this artifact. The external package handles OAuth authentication, token storage, network communications, and local file upload and download operations. If the npm publisher account, package release, registry response, dependency graph, or local npm cache is compromised, attacker-controlled code could execute with the privileges of the MCP client.

The audited artifact does not establish that tced-mcp@1.0.2 is malicious. The confirmed issue is the unsafe trust model in which externally supplied executable code is retrieved and run without artifact-level integrity verification.

Attack Path

  1. An attacker compromises the npm publisher account, package artifact, registry delivery path, transitive dependency, or local npm cache associated with tced-mcp@1.0.2.
  2. A user installs the documented MCP configuration and restarts the MCP client.
  3. The client invokes npx -y tced-mcp@1.0.2.
  4. npx resolves the package from the registry or cache and executes it without an integrity value ...[truncated 1158 chars]
Remediation
View remediation

Remediation Suggestions

  1. Avoid fetching executable packages at MCP startup. Install the dependency through a controlled build or deployment process and execute a locally verified artifact.
  2. Maintain a lockfile that records cryptographic integrity metadata for the package and all transitive dependencies.
  3. Vendor or otherwise make the complete MCP server source available for review alongside the Skill.
  4. Publish and verify package provenance, such as npm provenance attestations and signed release artifacts.
  5. Verify the package tarball digest against an independently maintained expected value before installation or execution.
  6. Use a private, allowlisted package registry or an approved internal artifact repository where practical.
  7. Run the MCP server in a sandbox with access restricted to required files and official network endpoints.
  8. Ensure ~/.tced-mcp/auth.json is readable and writable only by its owner, and minimize the OAuth scopes granted to the MCP server.
  9. Review package changes and transitive dependency updates before adopting a new pinned version.
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (9)

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding

Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
87% confidence
Finding

The skill instructs use of shell-capable actions such as running npx, npm cache clean, chmod, and a local setup script, but it does not declare any tool scope or allowed-tools constraints. In an agent environment, missing explicit scope increases the chance the skill is auto-invoked with broader shell access than intended, enabling unintended local command execution or configuration changes.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger keywords include very broad terms like '网盘', 'cloud drive', 'file upload', 'file download', 'file manager', and 'cloud storage', which can cause the skill to activate for generic file-management requests unrelated to Tencent Cloud Enterprise Drive. Overbroad activation increases the risk of misrouting user intent into a networked OAuth-enabled skill that can access or modify remote files.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
80% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

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

md
> **⚠️ 凭据安全**:`~/.tced-mcp/auth.json` 中包含 OAuth2 AccessToken 和 RefreshToken。建议确保该文件权限为 `600`(仅所有者可读写):
> ```bash
> chmod 600 ~/.tced-mcp/auth.json
> ```

## 概览

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This markdown file is natural-language documentation and it consistently forces a single language/locale for all users. Under the policy, language constraints should either be optional for the user or clearly justified as region-specific; neither is stated here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The user-facing comments and usage text are presented only in Chinese, and later output messages in the script also assume Chinese as the required language. Under the stated policy, forcing a specific language without offering user choice can be a natural-language policy violation unless the locale restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
80% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · scripts/setup.sh (reported line 157)May include surrounding context.

sh
if [ "$perms" = "600" ]; then
        ok "文件权限 $perms (仅所有者可读写 ✓)"
      else
        warn "文件权限 $perms (建议设置为 600: chmod 600 $auth_file)"
      fi
    fi
    # 检查域名配置是否指向官方地址

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The manifest presents the skill as a TCED cloud-drive management integration for uploading, downloading, browsing, and searching files with OAuth2 authentication. While OAuth2 is in scope, this reference documents host-level capabilities—automatically launching a browser and binding a local callback server on port 19526—that are not part of file management itself and require additional local-environment access.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation states that API domains controlling OAuth2 and token traffic are configurable via environment variables and that these values are persisted locally in ~/.tced-mcp/auth.json. If an attacker or unsafe deployment changes these endpoints to a malicious domain, OAuth codes, access tokens, and refresh tokens could be redirected and stolen, leading to account compromise across authorized spaces.

Content

No source excerpt is available for this finding.