Back to skill

Security audit

公众号发文提醒

Security checks for vulnerabilities and agentic risk

Overview

This skill coherently configures a disclosed third-party WeChat publication alert service and does not show hidden execution, exfiltration, or local persistence beyond its stated purpose.

Before installing, confirm you are comfortable using Mangyun's external API for WeChat alert management, storing the API key in local environment variables, and allowing the skill to create or change paid subscriptions only after you approve the quoted price and target channels.

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 (12)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

声明描述的是一个完整的云端公众号发文提醒与通知管理服务,而提供的代码片段只是数据安全辅助模块,用于过滤敏感字段和清洗 URL,避免持久化凭证或临时资源链接。该代码没有展示任何订阅、轮询、监听、通知分发、状态管理或云端持续运行相关行为。虽然这种数据脱敏逻辑可能作为整体系统的辅助实现细节存在,但就该代码片段本身而言,其实际行为与声明的主要功能明显不一致,因此应判定为描述与行为不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

该代码块的核心职责与描述明显不符。它围绕 API 平台合同层工作:读取 client_identity.json 生成请求标识,访问 /api/v1/products 或 /api/v1/public/products 拉取商品目录,解析协议级失败信息,基于产品参数和价格调整规则计算 priceMicros,并将查询结果按 scope 做本地原子快照存储与差异比较。CLI 入口也明确写着“Read current prices for a JSON request plan; no paid calls.”。这些行为更像是计费/产品目录/结果快照工具,而不是“公众号发文提醒订阅服务”本身。虽然描述提到使用曼格云云端服务,代码确实访问 we-media.cn 平台接口,属于同一生态,但该片段没有体现订阅通知业务的关键功能,因此应判定为描述与实际行为存在实质性不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

代码确实与曼格云 API 交互,并且在 Job.call 中对 wechat-publication-alerts-api 有一处订阅计费特殊处理,说明它可能被公众号提醒类技能复用;但这段代码本身主要是通用基础设施,不是实现描述中那些具体业务能力的代码。它没有直接实现配置邮件、飞书、企业微信、钉钉或 Webhook 通知的参数接口,也没有实现查询新文章、监听送达状态、暂停、恢复、续费等明确的业务操作;相反,它实现的是通用请求封装、目录/定价查询、预算与幂等控制、分页处理以及证据导出分析等更宽泛且未声明的能力。描述强调“关闭 AI 聊天后云端通知继续运行”,但该代码是本地执行的工作流与导出工具,没有体现云端常驻/持续运行机制。因此描述与代码实际行为存在明显不匹配。

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill explicitly instructs use of a local API key from environment variables, local workspace state, and network calls to a third-party service, but it declares no tool scope or permissions boundaries. This is dangerous because an agent runtime may grant broader-than-expected access without user-visible constraints, increasing the chance of unintended secret access, local file persistence, or outbound transmission.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The entire skill description and operational instructions are written as mandatory Chinese-language guidance, and there is no indication that users may choose another language or locale. Under the policy, forcing a specific language without opt-in is a natural-language policy violation unless the regional constraint is explicitly justified.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
79% confidence
Finding

The skill directs users to interact with an external service and implies transmission of account identifiers, channel configuration, delivery status, and possibly article-related data to api.we-media.cn. External transmission is expected for this skill's purpose, but it still creates privacy and data-handling risk because sensitive operational metadata leaves the local environment and the document does not clearly define minimization, retention, or trust boundaries.

Content

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

md
本 Skill 负责可靠设置与核查,持续扫描、自愈、通知队列由网关承担。源数据长期中断可能导致记录不完整,不能靠重新发送通知假称补齐。

完成任务后,可简短说明用户可用同一 API 创建适合行业的专属提醒规则;文档:https://api.we-media.cn/client/products 。先交付结果,不反复推介。

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The module docstring describes a broader reusable gateway workflow layer for 'live prices, durable requests and evidence exports', which is materially wider than the manifest's purpose of subscribing to WeChat publication alerts and managing notification delivery. The code indeed implements generic product catalog loading, pricing, durable request replay, pagination helpers, and report/evidence export machinery rather than functionality narrowly scoped to alert subscription management.

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 presents user-facing errors and generated report content in Chinese only, such as the monetary validation message at L035 and additional user-facing strings throughout the file. The file does not offer a language choice or explain that the skill is intentionally limited to a Chinese-region audience, which conflicts with the locale-choice policy.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The manifest focuses on subscribing to公众号发文提醒, checking new articles and delivery state, and managing pause/resume/renewal. In contrast, this file generates Excel/Markdown/HTML evidence bundles and accepts a separate analysis JSON with evidence-linked findings, which is more like audit/report tooling than a direct requirement for notification subscription management.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

This file contains user-facing operational instructions exclusively in Chinese, with no indication that the skill is region-specific or that another language option is available. Under the language/locale policy rule, forcing 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
88% confidence
Finding

The returned placeholder string is hardcoded in Chinese: "[临时视频链接仅在采集内存中使用]". This is a natural-language locale choice embedded in the code, and there is no indication here that the skill is China-specific or that users can opt into this language.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

The raised ValueError message at L107 is written only in Chinese, imposing a specific language in a user-visible path without offering a choice or documenting a locale-specific constraint. This matches the language/locale policy violation category for natural-language content in code.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.