Back to skill

Security audit

微信生态数据台

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed WeChat ecosystem data client for a paid external API, with local exports and explicit user confirmation before paid calls or media upload.

Install only if you intend to use the third-party api.we-media.cn service. Configure the API key locally, review estimated cost before approving --yes, and use --file only for media you are willing to upload outside your machine. Expect Chinese-language prompts and exported labels.

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
  • 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 (18)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

声明描述的是一个面向曼格云多种远程接口的数据助手,核心能力应包括根据需求选择不同 API 端点并查询微信生态多类数据。而代码仅处理已提供 payload 的视频号互动指标语义映射与统计分析,是一个狭窄的数据规范化/分析辅助模块。它不访问外部网络资源,不体现任何 API 客户端行为,也没有多接口路由、价格预估、导出或其他所述场景支持。因此代码行为与声明用途存在明显且实质性的偏差。

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
86% confidence
Finding

The skill instructs use of environment variables, local file I/O, and outbound network access, but it does not declare any explicit tool scope or permission boundary. That creates a least-privilege problem: an agent or host may grant broader capabilities than users expect, increasing the chance of unintended data access or exfiltration during execution.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
73% confidence
Finding

The skill content is entirely written to operate in Chinese and presents no option for user language or locale preference. Under the policy, forcing a specific language without opt-in can be a natural-language policy violation unless the locale restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill is defined as applicable whenever user needs are unclear and allows automatic endpoint selection across many data sources. That broad activation scope can cause over-collection, unnecessary external requests, and accidental use of paid or sensitive workflows without sufficiently narrow task binding.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
82% confidence
Finding

The skill directs the agent to contact an external service and later use the same key for product and pricing queries, which is a real external data transmission path. In context this is expected functionality, but it is still security-relevant because requests may disclose user queries, metadata, and uploaded content to a third party.

Content

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

先用小样本验证;未经我同意不自动扩大采集范围、不创建定时任务。

text

文档入口:https://api.we-media.cn/client/ai-guide
API 市场与逐产品 AI 文档:https://api.we-media.cn/client/products
公开产品目录:GET https://api.we-media.cn/api/v1/public/products
配置 Key 后,预估使用同 Key 请求 GET https://api.we-media.cn/api/v1/products,考虑参数附加价与调用次数;不能把价格写死。

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 58)May include surrounding context.

text

文档入口:https://api.we-media.cn/client/ai-guide
API 市场与逐产品 AI 文档:https://api.we-media.cn/client/products
公开产品目录:GET https://api.we-media.cn/api/v1/public/products
配置 Key 后,预估使用同 Key 请求 GET https://api.we-media.cn/api/v1/products,考虑参数附加价与调用次数;不能把价格写死。
创建专属 Skill 不代表免除 API 调用费用,也不保证结果、收益或留存率。

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

This line explicitly instructs use of a public external API endpoint, which constitutes outbound network communication to a third party. Even when the endpoint is public, requests can reveal user intent, IP/device metadata, and workflow context, so it is a genuine external transmission concern.

Content

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

md
文档入口:https://api.we-media.cn/client/ai-guide
API 市场与逐产品 AI 文档:https://api.we-media.cn/client/products
公开产品目录:GET https://api.we-media.cn/api/v1/public/products
配置 Key 后,预估使用同 Key 请求 GET https://api.we-media.cn/api/v1/products,考虑参数附加价与调用次数;不能把价格写死。
创建专属 Skill 不代表免除 API 调用费用,也不保证结果、收益或留存率。

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

This instruction directs the agent to call an authenticated external API using the user's key, which creates a stronger security risk than a public documentation link. If mishandled, it can expose account metadata, pricing, usage context, or credentials through logs, prompts, or unintended network behavior.

Content

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

md
文档入口:https://api.we-media.cn/client/ai-guide
API 市场与逐产品 AI 文档:https://api.we-media.cn/client/products
公开产品目录:GET https://api.we-media.cn/api/v1/public/products
配置 Key 后,预估使用同 Key 请求 GET https://api.we-media.cn/api/v1/products,考虑参数附加价与调用次数;不能把价格写死。
创建专属 Skill 不代表免除 API 调用费用,也不保证结果、收益或留存率。

## 请求身份与安全

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This JSON manifest contains endpoint names and purposes entirely in Chinese, such as "账户余额" and many other Chinese-only descriptions, but provides no indication that the skill is intentionally limited to Chinese-speaking users or that users can opt into another locale. Under the language/locale policy, forcing a specific language without user opt-in is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This code embeds user-facing labels and explanatory text exclusively in Chinese, including metric names and notes. The file provides no opt-in, fallback, or documented locale constraint, which is a natural-language locale policy concern under the language/locale rule.

Content

No source excerpt is available for this finding.

Cloud Storage Exfiltration

Medium
Category
Data Exfiltration
Confidence
55% confidence
Finding

Data is uploaded to cloud storage (S3 / GCS / Azure Blob). This may be a legitimate backup or exfiltration to an external bucket. Manual review is recommended.

Content

Scanner excerpt · scripts/wechat-ecosystem-data-hub.py (reported line 140)May include surrounding context.

python
# Only an explicit --file can upload a user-selected media file.
    if file_path:
        params["videoUrl" if "videoUrl" in ep.get("params", []) else "audioUrl"] = wm.upload_file(file_path)

    if pages > 1 or checkpoint_path:
        rows = wm.paginate(key, max_pages=pages, checkpoint=checkpoint_path, **params)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This file's natural-language content, including the top-level description and later user-facing messages, is entirely in Chinese and presents itself as a shared core for all WeChat ecosystem skills. Because the skill does not offer any user opt-in or alternative locale, it effectively imposes a specific language/locale policy.

Content

No source excerpt is available for this finding.

Unbounded Resource Access

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill allows unbounded resource consumption (API calls, storage, compute). Without rate limits or quotas, a compromised or misbehaving agent can cause denial-of-service or cost overruns.

Content

Scanner excerpt · scripts/wm_core.py (reported line 34)May include surrounding context.

python
from workflow_core import atomic_json, digest, next_params, APIError, workspace_lock
from platform_contract import identity_headers, catalog, price_micros, failure, product_path

EXIT_OK, EXIT_INPUT, EXIT_AUTH, EXIT_API, EXIT_NETWORK, EXIT_TIMEOUT = 0, 2, 3, 4, 6, 124

OFFICIAL = "https://api.we-media.cn"
ROOT = "https://api.we-media.cn"

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The code raises user-visible ValueError messages in Chinese at L076 and L082. Because this file does not indicate that the skill is China-specific or provide any opt-in or fallback language behavior, it enforces a specific language/locale in a way that may violate organizational language policy.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The manifest sets the visible skill name entirely in Chinese ("微信生态数据台") and provides no indication of optional locale selection or multilingual support. Under the stated policy, hard-coding a specific language without user opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The function returns Chinese-language placeholder strings such as "[临时视频链接仅在采集内存中使用]" and "[临时资源地址未保存]" as user-visible values. The file does not indicate any user language selection, opt-in, or region-specific justification, so this may force a locale unexpectedly.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

The code raises a user-visible ValueError message entirely in Chinese: "快照对应其他账号、端点或筛选条件,请换一个快照路径". This imposes a specific language on users without offering a locale choice or documenting that the tool is Chinese-only, which matches the language/locale policy violation criteria.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
77% confidence
Finding

The code reads API credentials from local config files and environment variables, which is a sensitive operation under the warning criteria for code files. Although the missing-key flow later tells users not to share keys, this credential access path itself has no nearby comment or user-facing disclosure explaining that local config and environment variables will be inspected.

Content

No source excerpt is available for this finding.