Back to skill

Security audit

小程序查找

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed paid API helper for searching WeChat mini-programs, with expected network use, local result files, and user confirmation before paid calls.

Before installing, expect this skill to use a local WM_API_KEY or related Mangyun key, contact api.we-media.cn, estimate paid API costs, and write result files locally. Review the displayed estimate before approving --yes, and choose output/checkpoint paths that are appropriate for the data being saved.

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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (15)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

声明描述的是一个“按关键词搜索微信小程序”的能力,应涉及搜索请求、结果解析与返回小程序名称/AppID/简介/图标/提供方等功能。但给出的代码片段完全没有搜索、查询微信小程序目录、调用相关接口或构造返回这些业务字段的逻辑。实际代码仅是一个通用的数据安全辅助函数 public_data,用于在本地证据中排除敏感字段并清洗 URL。其主要目的与声明功能明显不同,因此属于实质性不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

声明描述的是一个高价的“按关键词搜索微信小程序”的查询类技能,预期应调用搜索接口、接收关键词输入并返回小程序信息。代码却完全围绕微信视频号/Finder 的 interaction metrics 展开:定义指标语义版本,精确解析 like/share/comment/recommend 计数,兼容旧网关字段映射,规范化 payload,生成展示文案,并推断互动结构画像。整个代码片段既没有搜索逻辑,也没有任何与小程序实体信息提取或返回相关的实现,因此主用途与声明明显不符,属于显著描述-行为不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

声明描述的是一个面向最终业务的“微信小程序关键词搜索”能力,应调用某个搜索接口并产出小程序搜索结果字段。实际代码完全没有实现关键词搜索逻辑,没有接收搜索关键词、没有访问小程序搜索端点、没有解析或返回小程序结果。相反,它主要用于平台层的价格目录获取、费用估算、快照持久化和协议校验,只在注释/逻辑中涉及通用 openapi 产品路径和计费规则。虽然声明中提到‘接口单价较高,执行前务必确认’,与代码中的价格估算主题有弱相关,但该代码的主功能仍明显不是“小程序搜索”,而是通用计费/合同辅助工具,因此属于实质性描述不符。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

声明描述的是一个面向微信小程序搜索的具体业务能力,应当看到与关键词检索、微信小程序接口请求、名称/AppID/简介/图标/服务提供方字段解析相关的实现。但当前代码片段仅是通用基础设施:哈希摘要、JSON文件读写、异常类、跨平台文件锁、分页续取逻辑等。虽然存在 API 网关常量和网络库导入,但并没有展示执行“小程序搜索”这一核心行为,也没有任何与微信小程序资源或搜索参数直接对应的代码。因此,这段代码的实际行为与声明用途存在明显不匹配。

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill declares capabilities that imply environment access, file read/write, and network use, but it does not explicitly scope or constrain those tools with a permissions or allowed-tools declaration. That increases the blast radius if the skill is misused, modified, or interpreted by a permissive host, because credentialed network access and local file operations could occur without clear policy boundaries.

Content

No source excerpt is available for this finding.

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 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,考虑参数附加价与调用次数;不能把价格写死。

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 59)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 60)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,考虑参数附加价与调用次数;不能把价格写死。

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The string literal at L109 is a user-facing exception message written only in Chinese. This imposes a specific language on users without opt-in or any documented justification that the skill is region- or locale-specific, matching the language/locale policy violation criteria.

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 all primary natural-language user-facing guidance in Chinese, including the top-level module description and later runtime prompts, with no indication that users may choose another language. Under the policy, forcing a specific language without user opt-in is a natural-language locale violation unless clearly justified as region-specific.

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

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The code raises user-facing ValueError messages in Chinese at L076 and L082. This imposes a specific language on users without offering a choice or documenting a justified region-specific constraint, matching the locale-policy violation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest sets the skill display name to the Chinese-only string "小程序查找". For a general skill manifest, this imposes a specific language presentation without any indication of user opt-in, localization fallback, or a documented region-specific requirement.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

The function returns Chinese-language placeholder strings ([临时视频链接仅在采集内存中使用] and [临时资源地址未保存]) as user-visible values. This forces a specific language in normal operation without any opt-in, which matches the language/locale policy concern for natural-language content.

Content

No source excerpt is available for this finding.