Back to skill

Security audit

AI店长 - 电商助手

Security checks for vulnerabilities and agentic risk

Overview

This skill appears to be a disclosed Chinese e-commerce assistant that searches public marketplace data and writes sales content, with some monitoring and report-quality risks users should manage.

Install this if you want a Chinese-market e-commerce assistant that works from public web data. Confirm before enabling any recurring monitoring, and treat reports or pricing recommendations as advisory because public search results can contain misleading or instruction-like text that may influence generated output.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/competitor.js:135
Finding

Indirect Prompt Injection Through Untrusted Search and Monitoring Data

Content
View full analysis
!d.error) .map(([platform, data]) => { const prices = analysisReport.priceRange[platform]; const priceStr = prices ? `价格区间 ¥${prices.min}-${prices.max},中位数 ¥${prices.median}` : '价格数据不足'; const titles = data.results.slice(0, 5).map(r => ` - ${r.title}`).join('\n'); return `【${data.platform}】${priceStr}\n热门商品标题:\n${titles}`; }) .join('\n\n'); const keywordStr = analysisReport.keywords .map(k => `${k.platform}: ${k.topWords.slice(0, 10).map(w => w.word).join('、')}`) .join('\n'); return `你是一个资深电商运营专家。请根据以下竞品数据,为关键词"${keyword}"生成竞品分析报告。 ## 搜索数据 ${platformSummaries} ## 高频关键词 ${keywordStr} ## 请分析以下内容: 1. **市场概况**:这个品类的整体竞争程度、价格带分布 2. **头部竞品分析**:排名靠前的商品有什么共同特点 3. **差异化机会**:从标题和价格中发现的市场空白点 4. **定价建议**:建议的价格区间和定价策略 5. **关键词建议**:标题中应该包含的核心关键词 6. **风险提示**:需要注意的竞争风险 请用简洁的中文回答,适合电商卖家阅读。`; } ``` #### `scripts/selector.js:107-120` ```js function buildTrendPrompt(searchResults) { return `你是一个电商数据分析师。根据以下搜索数据,分析当前电商市场趋势。 搜索数据: ${JSON.stringify(searchResults, null, 2)} 请分析: 1. 当前最热门的品类/产品是什么 2. 有哪些正在上升的新趋势 3. 哪些品类竞争相对较小但需求在增长(蓝海机会) 4. 近期有什么值得关注的消费趋势变化 5. 给出3个具体的选品建议 用简洁的中文回答,重点突出可操作的信息。`; } ``` #### `scripts/selector.js:126-143` ```js function buildDailyReportPrompt(keyword, todayData, yesterdayData) { return `你是AI店长,请生成今日的竞品监控日报。 监控关键词:${keyword} 今日数据:${JSON.stringify(todayData, null, 2)} ${yesterdayData ? `昨日数据:${JSON.stringify(yesterdayData, null, 2)}` : '(首次监控,无历史数据)'} 请生成简洁的日报,包含: 📊 **${ ...[truncated 3323 chars]
Remediation
View remediation
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (12)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The wording says the skill can be installed and then spoken to directly, and that it will 'automatically' perform searches, analysis, recommendations, and pricing suggestions. This ambiguity increases the risk that the agent invokes the skill too eagerly or performs multi-step actions without sufficiently clear user intent, especially where web_search, web_fetch, and cron-based monitoring are involved.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The invocation examples use very broad, natural phrases such as requests to analyze products, write titles, or monitor competitors without defining clear trigger boundaries. In an agent environment, this can cause the skill to activate unexpectedly during ordinary conversation, leading to unintended web searches, content generation, or task setup that the user did not explicitly mean to invoke through this skill.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

Line L172 instructs the model to respond in Chinese only ("请用简洁的中文回答") with no indication that the user can choose another language. This is a natural-language locale policy issue because it forces a specific language rather than offering or documenting an opt-in choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill's natural-language prompts are written to require output in Chinese and are tailored to Chinese e-commerce platforms, but there is no opt-in, alternative language option, or explicit documentation that the skill is region-locked. Under the policy, forcing a specific language/locale without user choice 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

The detail-page, Xiaohongshu note, livestream, and customer-service templates all instruct the model in Chinese and assume Chinese-language output, but the file does not provide a user-selectable language setting or a clear statement that the skill only supports a Chinese locale. This creates a broad language-policy issue across the skill's natural-language instructions.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This aggregate prompt directs the model in Chinese for all generated content and assumes Chinese marketplace usage, yet it does not offer users a language choice or clearly state that the skill is restricted to a Chinese regional context. That violates the stated language/locale policy requirement.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The prompt explicitly instructs the model to answer in Chinese ('用简洁的中文回答') with no indication that language selection is optional. This is a natural-language locale policy concern because it imposes a specific language regardless of user preference.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

All returned schedule presets specify tz: 'Asia/Shanghai', which imposes a specific locale/timezone regardless of the user's environment. There is no user choice, fallback to local timezone, or documented region-specific justification in this file.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

This markdown skill content forces a specific language/locale for all instructions and examples, which can violate language-choice policy when no user opt-in or justification is provided. The document does not indicate that it is intended only for Chinese-speaking users or a China-specific workflow.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The header comment describes the module as focused on product selection analysis and discovering blue-ocean categories. However, the code later includes buildDailyReportPrompt, which is for '竞品监控日报' (competitor monitoring daily reports), a different function than selection analysis. This is an active intent mismatch in the code documentation rather than a mere omitted detail.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The code formats the date using toLocaleDateString('zh-CN'), which enforces a specific locale in generated output. This can violate language/locale policy when the skill does not offer a locale choice or explain that it is intentionally China-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

This JavaScript file uses Chinese-language comments and labels throughout, and later hard-codes the timezone to Asia/Shanghai for all suggested schedules. The file does not indicate that the skill is region-specific or that users can opt into this locale, which can violate organizational language/locale policy.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.