Back to skill

Security audit

视频号找号

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed WeChat Channels lookup tool that uses a third-party paid API and local output files, with no evidence of hidden persistence, exfiltration, or destructive behavior.

Before installing, be comfortable sending search keywords, WeChat URLs, and authenticated API requests to api.we-media.cn. Keep WM_API_KEY in local environment/config only, review the live cost estimate before using --yes, and choose output/checkpoint paths carefully because the skill writes local result files.

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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (21)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

声明描述的是“按关键词搜索视频号账号与作品”的检索能力,但实际代码并未执行任何搜索、查询、关键词处理、账号/作品检索或结果返回逻辑。相反,它只是在处理字典、列表、Decimal和URL,删除如cookie、authorization、access_token等敏感字段,并对微信文章链接、视频号预览链接及带签名参数的资源链接进行脱敏。这属于内部数据安全辅助功能,而非所声明的核心业务能力,因此描述与代码行为存在明显不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

声明描述的是一个“视频号账号/作品关键词搜索”技能,核心能力应包括接收关键词、检索视频号账号或作品,并返回匹配对象的基本信息。实际代码完全围绕视频号互动指标处理:将网关返回的指标字段做语义映射(如 likeCount/favoriteCount/recommendCount)、校验精确整数值、构造 metricDetails、计算互动总量、展示文案,以及推断互动结构画像。代码中没有任何搜索逻辑、关键词处理、账号/作品查询、外部请求或结果组装为账号名/标题/ID的行为。因此其主要目的与声明严重不一致,属于明显描述-行为不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

声明描述的是一个面向视频号内容检索的技能,核心能力应是按关键词搜索账号和作品并返回相关结果。但代码中没有任何关键词搜索、视频号账号检索、作品检索、结果提取或返回账号名/标题/ID的实现。相反,代码主要围绕开放平台产品目录、价格计算、请求身份、错误封装校验以及快照管理展开,属于通用平台计费/合同支持模块。其主要目的与声明严重不符,因此应判定为明显不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

声明描述的是一个具体业务技能:按关键词搜索视频号账号和作品并返回相关字段。但提供的代码片段并未体现该具体搜索逻辑,也没有看到固定调用某个“视频号搜索”端点、构造关键词搜索参数、或筛选输出账号名/作品标题/ID。相反,这是一套通用 SDK/底座代码,可用于多种微信生态 API:鉴权、价格估算、通用端点调用、分页、缓存、格式化导出等。虽然其中可能可被上层技能用于视频号搜索,但就当前代码片段本身而言,其实际行为与声明的主要用途不一致,且包含若干未在声明中体现的通用能力。因此应判定为描述与代码行为不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

声明的功能是面向“视频号账号/作品关键词搜索”的业务能力,应看到与搜索接口调用、关键词参数、账号/作品结果解析相关的实现。但该代码片段仅包含底层通用基础设施函数,没有出现搜索视频号账号/作品的核心行为,也没有返回账号名、作品标题与ID的逻辑。虽然存在外部API域名常量,但从片段看主要用途是通用工作流支撑,并包含未在描述中体现的本地持久化与锁文件能力。因此描述与实际代码行为存在明显不匹配。

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill instructs use of environment variables, local file reads/writes, and network access, but it does not declare an explicit tool scope or permission boundary. That makes the effective capability set broader and less auditable, increasing the chance that an agent or host grants more access than the user expects.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The activation language is broad and scenario-driven, without clear exclusions or strict trigger boundaries. In agentic environments this can cause the skill to activate on loosely related requests, leading to unnecessary network calls, unintended paid API usage, or collection of data beyond user intent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
81% confidence
Finding

The entire skill instruction set and user-facing guidance are written as if interaction will occur in Chinese, with no indication that the user may choose another language or locale. That creates a natural-language policy concern because it implicitly enforces a language choice without opt-in or documented justification.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
83% confidence
Finding

The skill directs the agent to contact an external third-party API service and product documentation host. Any external transmission introduces data exposure and supply-chain risk, especially where user queries, usage metadata, and potentially account identifiers are sent off-platform to a commercial endpoint.

Content

Scanner excerpt · SKILL.md (reported line 56)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
83% confidence
Finding

This line references another external endpoint under the same third-party domain, reinforcing that the skill relies on outbound connections beyond the local environment. The risk is not the URL itself but the implied transmission of user-supplied search terms and API-authenticated requests to a remote service.

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,考虑参数附加价与调用次数;不能把价格写死。
创建专属 Skill 不代表免除 API 调用费用,也不保证结果、收益或留存率。

External Transmission

Medium
Category
Data Exfiltration
Confidence
85% confidence
Finding

The public products endpoint is an external network destination and therefore a real transmission surface. Even if unauthenticated, it expands the skill's dependency chain and can be used as part of broader outbound behavior without a clearly declared network scope.

Content

Scanner excerpt · SKILL.md (reported line 58)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
88% confidence
Finding

The authenticated products endpoint is more sensitive because it uses the same API key and may expose account-specific product or billing context. In combination with broad network capability and missing explicit scope declarations, this creates a meaningful external data-transfer and account-metadata exposure risk.

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 调用费用,也不保证结果、收益或留存率。

## 请求身份与安全

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The raised ValueError contains a Chinese-only message: "快照对应其他账号、端点或筛选条件,请换一个快照路径". This imposes a specific language on users without opt-in or any documented justification that the tool is intentionally Chinese-only.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The module docstring and all user-facing usage text are written exclusively in Chinese, and later prompts/errors are also hardcoded in Chinese. This imposes a specific language on users without any opt-in, fallback, or explanation that the skill is region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This file contains natural-language guidance, CLI help, warnings, and status messages entirely in Chinese, and there is no indication that users can opt into another language. Under the policy, forcing a specific language without user choice is a natural-language policy violation unless the locale restriction is clearly documented and justified.

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 33)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

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The manifest sets the user-facing display name to a Chinese-only string, which indicates a fixed language choice. There is no accompanying indication that the skill is region-specific or that users can opt into this locale, so it may violate the language/locale policy requirement.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The code returns user-visible placeholder strings in Chinese ([临时视频链接仅在采集内存中使用] and [临时资源地址未保存]) with no indication that the skill is Chinese-only or that users can choose a locale. This is a natural-language locale policy issue because the file embeds a fixed language choice rather than offering opt-in or documenting a justified regional constraint.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

This JSON defines available endpoints and purposes, but it does not specify any activation constraints, allowed invocation contexts, or exclusion conditions. In a manifest-like file, the absence of clear trigger scope can lead to overly broad or unintended skill invocation because nothing in the file narrows when these actions should or should not be used.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The endpoint names and purpose strings are written only in Chinese, with no indication that the skill is region-specific or that users can choose another language. This can constitute a language/locale policy issue when a skill implicitly enforces one language without opt-in or documented justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The exceptions raised at L076 and L082 contain Chinese-only natural-language text. For a general workflow utility, this imposes a specific language on users without opt-in or documentation that the skill is intentionally region-specific, which matches the locale-policy violation criteria.

Content

No source excerpt is available for this finding.