Back to skill

Security audit

国内需求挖掘

Security checks for vulnerabilities and agentic risk

Overview

The skill is not malware, but it needs review because it presents synthetic repeated comments as real platform feedback and gives broad scraping instructions without enough controls.

Before installing, treat this as a demo or draft workflow unless the publisher adds real, compliant data adapters and provenance labeling. Do not rely on generated reports as empirical market research unless every record is verified as real, authorized, deduplicated, and traceable to an allowed source.

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
Findings (1)

other

Error
Location
scripts/fetch_xiaohongshu.py:12
Finding

Synthetic Fixture Data Misrepresented as Scraped Platform Feedback

Content
View full analysis

Vulnerability Details

File Locations:

  • SKILL.md:98-103
  • scripts/fetch_xiaohongshu.py:12-73
  • scripts/fetch_douyin.py:11-72
  • scripts/fetch_weibo.py:11-82
  • scripts/fetch_wechat_video.py:11-72
  • scripts/fetch_ecommerce_reviews.py:11-82

Vulnerability Type: Data provenance and research-integrity failure
Risk Level: High

The Skill documentation requires collection of 3,000–5,000 raw records and at least 2,000 cleaned, valid user-demand records. However, the platform fetchers do not perform network requests, browser automation, or official API calls. They instead repeat small collections of hard-coded records and save them as if they were recently collected platform data.

Complete Code Snippets

From scripts/fetch_xiaohongshu.py:12-73:

python
def fetch_comments(self, keyword: str, limit: int = 100) -> List[Dict]:
    comments = []
    
    sample_comments = [
        {
            "platform": "小红书",
            "keyword": keyword,
            "content": "这个公益项目真的很有意义,希望能帮助到更多需要帮助的人",
            "author": "用户A",
            "timestamp": datetime.now().isoformat(),
            "likes": 156,
            "sentiment": "positive",
            "is_negative": False
        },
        {
            "platform": "小红书",
            "keyword": keyword,
            "content": "参与了这个公益活动,但是流程太复杂了,希望能简化一下",
            "author": "用户B",
            "timestamp": datetime.now().isoformat(),
            "likes": 89,
            "sentiment": "negative",
            "is_negative": True
        },
        {
            "platform": "小红书",
            "keyword": keyword,
            "content": "捐赠的物资不知道去向,希望能有更透明的公示机制",
            "author": "用户C",
            "timestamp": datetime.now().isoformat(),
            "likes": 234,
            "sentiment": "negative",
            "is_negative": True
        },
        {
            "platform": "小红书",
            "keyword": keyword,
            "content": "客服响应太慢了,咨询了好几天都没有回复",
            "author": "用户D",
...[truncated 5440 chars]
Remediation
View remediation

Remediation Suggestions

  1. Rename and clearly label the current implementations as mock or demonstration generators.
  2. Prevent mock fetchers from running in production workflows or contributing to empirical reports.
  3. Add an explicit field such as synthetic: true to every fixture and propagate that status through cleaning, analysis, and reporting.
  4. Implement compliant collection adapters using official APIs or authorized browser-based retrieval where legally and contractually permitted.
  5. Record verifiable provenance for every retrieved item, including a source URL or immutable platform identifier, retrieval time, and adapter version.
  6. Reject records that lack provenance when a report is designated as real-world research.
  7. Enforce minimum thresholds based on unique, provenance-verified records rather than generated record counts.
  8. Make report generation fail closed when the documented sample threshold is not met.
  9. Validate that engagement values and timestamps originate from source records rather than being generated locally.
  10. Add automated tests proving that production adapters perform actual retrieval and cannot silently fall back to fixtures.
  11. Clearly disclose collection limitations, platform coverage, duplicate rates, and synthetic-data use in every generated report.
  12. Reconcile the documented 2,000-record requirement with the actual capacity of the collection pipeline before presenting statistical-confidence claims.
Vulnerability Patterns
  • 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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (63)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The description promises an end-to-end需求挖掘 skill: collecting user comments/feedback from specific Chinese platforms, choosing sources based on need type, focusing on Xiaohongshu comments and e-commerce negative reviews, then performing demand analysis and producing a research report. The actual code does none of that. It only reads existing JSON data from a file or directory, cleans text, filters spam/short/empty entries, removes duplicates using a simple character-set similarity metric, tracks counts, and writes cleaned data plus stats to an output file. While data cleaning could be a supporting component of a larger demand-mining pipeline, this code chunk by itself materially differs from the declared primary purpose and lacks the core declared capabilities.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

声明描述的是一个完整的需求挖掘流程技能,包含跨平台数据抓取、评论/差评分析、需求洞察和报告生成。给定代码片段的实际功能明显更窄:它只是通过静态关键词表判断需求偏向实物还是服务,并依据硬编码的平台配置生成一个采样分配方案输出到文件。虽然“根据需求类型智能选择数据源”这一小部分与声明略有相关,但核心宣称能力——抓取数据、分析评论、聚焦差评、输出调研报告——均未在代码中体现。因此该描述与代码行为存在明显且实质性的不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

声明描述的是一个端到端的“需求挖掘”技能,核心包括多平台采集、按需求类型选择数据源、针对特定平台/差评重点分析、并输出调研报告。但实际代码只是一个离线分析脚本:读取输入文件中的评论数据,基于固定关键词进行需求类型分类和简单痛点词匹配,统计情绪分布与负面占比,再写回JSON。代码没有网络访问、爬取逻辑、平台适配、数据源决策、报告生成等关键能力,因此声明与实际行为存在明显且实质性的不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

声明描述的是一个多平台需求挖掘与分析技能,核心价值在于跨平台真实数据采集、按场景选源、聚焦特定评论类型并输出分析报告。但代码实际只是一个单一的抖音脚本,使用硬编码样例评论模拟结果并写入 JSON。其主要目的与声明相比明显更窄且不同,缺少声明中的关键能力,因此属于明显不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

声明描述的是一个较完整的“需求挖掘与分析”技能,覆盖多类中国平台数据采集、按需求类型选源、重点分析小红书和电商差评,并输出分析报告。但给出的代码只包含一个电商评论获取脚本,且其 fetch_reviews 并未访问任何外部平台,而是返回硬编码的负面评论样本,再写入 JSON。支持的平台也仅限淘宝、京东、拼多多,与声明强调的抖音、小红书不符。代码没有任何需求识别、分类、分析、分级、情绪汇总、市场机会研判或报告生成逻辑。因此,代码实际能力与声明存在明显且实质性的不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

声明描述的是一个多平台用户需求挖掘与分析技能,核心能力包括跨平台抓取、按需求类型选择数据源、重点分析小红书与电商差评,并输出需求调研报告。而实际代码只是一个单一平台的评论导出脚本,且平台还是未在声明中重点提及的微信视频号。更重要的是,它没有任何分析逻辑,只是复制预设评论样例并保存为 JSON。因此其主要目的、数据来源和能力范围都与声明存在明显且实质性的偏差。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

声明描述的是一个面向多平台的用户需求挖掘与分析技能,核心能力应包括:从抖音、小红书、淘宝等平台抓取真实评论/反馈、根据需求类型选择数据源、聚焦小红书与电商差评、进行需求分析与分级,并产出调研报告。但实际代码只包含一个 fetch_weibo.py 脚本,功能局限于生成并保存微博评论样例数据。代码中没有对抖音、小红书、淘宝的访问,没有任何智能路由逻辑,没有需求分类/分级算法,也没有报告生成流程。此外,所谓“抓取”实际上是返回硬编码 sample_comments 的模拟数据。因此其主要目的与声明存在明显偏差,属于实质性不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The description promises a broad user-needs mining skill across several Chinese platforms, with intelligent source selection, focus on negative reviews, demand analysis, prioritization, and report generation. The actual code only accepts a keyword, creates up to 100 records by cycling through a fixed list of five preset Xiaohongshu-style comments, and writes them to JSON. It neither fetches real remote data nor analyzes needs beyond including prewritten sentiment flags in the sample records. This is a material mismatch in both scope and primary purpose.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

声明描述的是一个端到端的用户需求挖掘技能,核心应包括外部平台数据抓取、数据源选择、评论/差评分析以及调研报告生成。但提供的代码块只处理已经准备好的demands列表:读取本地JSON、按字段聚合、计算priority和score、生成分布摘要并写回JSON。它不访问任何外部平台、没有爬取逻辑、没有数据源判定、没有面向特定平台的分析,也没有生成完整调研报告文本。因此代码的实际行为仅覆盖“需求分级排序”这一子步骤,和声明的主要用途存在明显不一致。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

声明描述的是一个面向市场/用户研究的需求挖掘技能,核心能力应包括从多个平台获取数据并对用户需求、抱怨、痛点和情绪进行分析,最终输出需求调研结论。而给出的代码片段只是一个数据验证脚本:从本地输入文件读取已有数据,校验数量是否达标、文本是否过短或为空、重复率是否过高,以及是否覆盖预期平台,然后输出验证报告。它不访问抖音、小红书、淘宝等平台,也不进行评论抓取、差评筛选、需求识别、情绪分析、分级或调研报告撰写。虽然数据校验可能是更大流程中的辅助环节,但该代码片段的实际用途与声明的主要能力存在显著偏差,因此应判定为不匹配。

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The report recommends emotion recognition, emotional-state analysis, and psychological support features without warning that these involve sensitive inferences about mental state. In the context of an education product, covert or poorly disclosed emotional-data processing can harm vulnerable users and create significant privacy, ethics, and regulatory exposure.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The file content is a detailed emoji design brief for civil-service exam preparation and is unrelated to the skill's declared functionality of mining public-platform user demand and complaints. In an agent skill, substantial off-purpose content increases supply-chain risk because it can hide prompt injections, confuse routing/behavior, or indicate the package was assembled carelessly without appropriate review.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script is presented as fetching Xiaohongshu comments, but the implementation only returns hard-coded sample data while preserving realistic fields such as platform, keyword, timestamps, sentiment, and authors. In a demand-mining skill, this can mislead downstream analysis, reports, or business decisions into treating fabricated data as real user feedback, which is a material integrity and trust violation.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
74% confidence
Finding

The skill declares no explicit tool scope while static analysis indicates file read/write capabilities. In an agent environment, undeclared capabilities weaken least-privilege guarantees and can let the skill access or modify local data unexpectedly, especially because the skill is framed as a data-collection workflow and may be invoked broadly.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly instructs large-scale scraping of user comments across social and e-commerce platforms but provides no user-facing warning about privacy, platform terms, consent, retention, or downstream handling. Because the context is public-comment mining at scale, the absence of guardrails materially increases compliance and privacy risk and can normalize indiscriminate collection of user-generated content.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrases are very broad and overlap with ordinary analysis requests, making accidental or overly frequent activation likely. In a skill that discusses large-scale scraping and report generation, broad routing increases the chance of invoking data-collection workflows without clear user intent or proper review.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown template is written entirely in Chinese section headings and labels, which imposes a specific language on generated reports. The file does not offer an opt-in language choice or explain that the template is intentionally region-specific, which matches 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
79% confidence
Finding

This JSON contains multiple natural-language content fields in Chinese, but there is no accompanying indication that the skill offers a language choice or that the locale restriction is intentional and justified. Under the stated policy, forcing a specific language without user opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The manifest frames the skill as mining user needs, complaints, pain points, and market opportunities for domains/products, especially from consumer social and e-commerce feedback. This file instead contains repeated 微博 posts on '公务员备考' with content about '公益项目' and '举报功能', which reads more like a generic or mismatched sample corpus than targeted demand-mining data for the stated scenarios.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The file is labeled for the demand-mining target '公务员备考', but the actual records discuss公益项目、捐赠物流、客服响应等 unrelated topics. In a demand-mining skill, this kind of mislabeled corpus can poison downstream analysis, causing false market conclusions, bad recommendations, and potentially unsafe automated decisions based on fabricated relevance.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The entire framework is written as Chinese-only guidance, including headings, labels, examples, and output template fields, with no indication that users may choose another language. Under the policy rule for language/locale, this creates a natural-language constraint that appears mandatory rather than optional or region-justified.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The manifest describes a skill that mines user demand from Chinese public social-media and e-commerce platforms such as 抖音、小红书、淘宝 by selecting data sources and analyzing comments/negative reviews. This file instead contains a narrative report about AI-era demand for civil-service exam online education, with no evidence of platform scraping, source selection logic, comment/feedback extraction, or demand-mining workflow tied to the declared skill.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The report proposes collecting and analyzing learner performance, weak points, schedules, and behavior data to drive personalized learning paths without any notice about consent, retention, or data minimization. If implemented from this guidance, the skill could process educational profiling data in a non-transparent way, increasing privacy and compliance risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The report proposes learning-data visualization, social matching, and user profiling features without describing how personal data sharing, visibility, or matching criteria will be disclosed and controlled. If implemented carelessly, these features can expose study habits, progress, or inferred traits to other users or internal systems beyond user expectations.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The report explicitly describes collecting and prioritizing social-platform user feedback, including negative feedback, without any stated privacy, consent, minimization, or platform-terms controls. In the context of a repeatable agent skill designed to scrape and analyze user comments from Chinese social platforms, this can normalize unauthorized collection and downstream profiling of individuals or communities, creating privacy, compliance, and reputational risk.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.