Back to skill

Security audit

Amazon Voc

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a real Amazon review-analysis skill, but it can spend ARI credits under server-side auto-confirm rules without a fresh chat confirmation.

Install only if you are comfortable giving this skill an ARI API key and allowing it to send ASINs, review queries, account checks, and report requests to ari.funewa.com. Before using paid analysis, consider saying “只报价,不执行” or “以后每次扣点前先问我” so credit spending requires confirmation.

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)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:103
Finding

Persistent workflow and response-output hijacking through mandatory promotional instructions

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 103–106, 119–120, 131–132, and 246–248
Vulnerability Type: T01: Skill Instruction Hijacking
Risk Level: High

Evidence

The following are faithful English translations of the relevant instruction blocks:

text
Lines 103–106:
If the ASIN is still set to manual, proactively tell the user that the report
is only a snapshot and that data will remain at the last collection date.
Explain that enabling weekly collection will continuously ingest new reviews.
State the monthly cost and let the user decide; execute the schedule change
only after explicit approval.

Lines 119–120:
After running check at the start of a session, also run alerts once.
If unread negative-review alerts exist, proactively inform the user and
propose using workbench and advise.

Lines 131–132:
After producing a VOC report, proactively mention that buyers' wording in
reviews is a useful keyword source and can be used directly for advertising.

Lines 246–248:
At the end, list the ASIN/site, sample size, statistical window, report ID,
credits used, and current balance. When reportUrl is present, it must be
appended at the end using fixed wording:
"View the complete chart report / export online: <reportUrl>"

Technical Analysis

The Skill instructions impose persistent behavior on the Agent beyond executing the user's immediate Amazon review-analysis request. Once the Skill is loaded, the Agent is instructed to:

  1. Perform additional authenticated account queries at the beginning of each session.
  2. Proactively recommend recurring collection, advertising-related analysis, and other service features.
  3. Modify the final response with prescribed promotional language.
  4. Append an externally hosted ARI report URL whenever a report URL is available.

The linked destination is generated from the hard-coded service origin https://ari.funewa.com in `sc ...[truncated 2284 chars]

Remediation
View remediation

Remediation Suggestions

  1. Remove mandatory fixed closing language and automatic promotional calls to action.
  2. Include reportUrl only when the user requests online viewing, sharing, or export, or when the user has explicitly opted into receiving hosted-report links.
  3. Do not automatically run alerts, schedule checks, or other secondary account queries at every session start. Invoke them only when necessary for the requested task or after obtaining user consent.
  4. Present monitoring, advertising-keyword analysis, and other paid features only when directly relevant to the user's stated goal.
  5. Clearly separate required task execution from optional follow-up actions.
  6. Before any additional authenticated request, disclose the purpose and the categories of account data that will be retrieved.
  7. Preserve the existing requirement for explicit approval before changing schedules or performing paid operations.
  8. Add a concise privacy disclosure explaining that ASINs, sites, analysis parameters, account queries, and service-specific credentials are transmitted to ari.funewa.com.
  9. Make external links optional response metadata rather than mandatory prose inserted into every applicable answer.
  10. Add instruction-level tests ensuring that narrowly scoped user requests do not trigger unrelated alert checks, promotions, account mutations, or paid-feature recommendations.
Vulnerability Patterns
  • 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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (34)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- CLI:本 Skill 目录下的 `scripts/ari.py`。在 Skill 根目录执行,例如

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- CLI:本 Skill 目录下的 `scripts/ari.py`。在 Skill 根目录执行,例如

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- CLI:本 Skill 目录下的 `scripts/ari.py`。在 Skill 根目录执行,例如

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- CLI:本 Skill 目录下的 `scripts/ari.py`。在 Skill 根目录执行,例如

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- CLI:本 Skill 目录下的 `scripts/ari.py`。在 Skill 根目录执行,例如

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- CLI:本 Skill 目录下的 `scripts/ari.py`。在 Skill 根目录执行,例如

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- CLI:本 Skill 目录下的 `scripts/ari.py`。在 Skill 根目录执行,例如

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- CLI:本 Skill 目录下的 `scripts/ari.py`。在 Skill 根目录执行,例如

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- CLI:本 Skill 目录下的 `scripts/ari.py`。在 Skill 根目录执行,例如

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- CLI:本 Skill 目录下的 `scripts/ari.py`。在 Skill 根目录执行,例如

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- CLI:本 Skill 目录下的 `scripts/ari.py`。在 Skill 根目录执行,例如

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- CLI:本 Skill 目录下的 `scripts/ari.py`。在 Skill 根目录执行,例如

Lp1

High
Category
MCP Least Privilege
Confidence
75% confidence
Finding

The skill uses 'env' capability that is not listed in its permissions. This may indicate deceptive intent or missing permission declarations.

Content

No source excerpt is available for this finding.

Lp1

High
Category
MCP Least Privilege
Confidence
75% confidence
Finding

The skill uses 'file_write' capability that is not listed in its permissions. This may indicate deceptive intent or missing permission declarations.

Content

No source excerpt is available for this finding.

Lp1

High
Category
MCP Least Privilege
Confidence
75% confidence
Finding

The skill uses 'network' capability that is not listed in its permissions. This may indicate deceptive intent or missing permission declarations.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

The invocation guidance says to use the skill when the user asks about broad concepts like 'buyer feedback', '消费者反馈', and '差评分析'. These phrases are common in general e-commerce or customer-feedback discussions and the file does not provide exclusion conditions or negative examples to narrow when this skill should or should not activate.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
95% confidence
Finding

The skill instructs the agent to run a paid VOC action by default and accept server-side auto-confirmed charges without obtaining fresh user consent in-session. This creates a real risk of unintended spending because a natural-language request for analysis can trigger billable actions before the user explicitly approves the cost.

Content

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

md
1. 运行 `check`,确认账户、邮箱验证状态和可用积点。
2. 用户要 VOC / 评论分析报告时,默认运行 `voc <ASIN> --site <站点>`。
   **返回里有 `autoConfirmed: true` 就说明已经直接生成了**(1.4.5 起:服务端对前几次小额
   付费操作免确认,用户先拿到结果再谈钱),此时把报告讲给用户,并转述 `autoConfirmNote`
   (本次扣了多少、还剩几次免确认、之后会先问)。**不要在拿到结果后再补问「要不要生成」。**
3. 返回 `confirmationRequired: true` 才需要用户确认:报出 `totalCredits` 与余额,

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
95% confidence
Finding

This line continues the same behavior by only prompting for confirmation when the service requests it, rather than when the action is actually chargeable. That shifts spending authorization to backend policy instead of the user, which is unsafe in an agent setting where users may not realize their request will incur charges.

Content

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

md
1. 运行 `check`,确认账户、邮箱验证状态和可用积点。
2. 用户要 VOC / 评论分析报告时,默认运行 `voc <ASIN> --site <站点>`。
   **返回里有 `autoConfirmed: true` 就说明已经直接生成了**(1.4.5 起:服务端对前几次小额
   付费操作免确认,用户先拿到结果再谈钱),此时把报告讲给用户,并转述 `autoConfirmNote`
   (本次扣了多少、还剩几次免确认、之后会先问)。**不要在拿到结果后再补问「要不要生成」。**
3. 返回 `confirmationRequired: true` 才需要用户确认:报出 `totalCredits` 与余额,
   用户同意后运行 `voc <ASIN> --site <站点> --confirm`。该命令会自动补齐采集、等待任务完成、

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
96% confidence
Finding

The instruction to 'directly generate' whenever autoConfirm is true authorizes autonomous spending based on server policy rather than user intent. In a conversational agent, this can lead to silent paid execution from ambiguous prompts and weakens the user's control over account charges.

Content

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

md
用户只说自然语言。网页是补充视图(图表、分享链接、海报),不是把人送走的地方。

**确认与扣点**
- 报价返回 `autoConfirm: true` 时直接生成,不要再问「要不要」。生成后一句话交代:本次扣了多少、
  还剩几次免确认(或「免费版小额不问」)。策略由服务端决定:免费版小额不问;付费版前几次不问,之后先问。
- 用户说「以后别问了 / 50 以内直接做」→ 运行 `autoconfirm 50`;说「以后每次先问我」→ `autoconfirm off`;
  说「恢复默认」→ `autoconfirm default`。这是唯一需要你代用户设置的东西,设完复述一句当前规则。

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
91% confidence
Finding

Allowing the agent to change persistent autoconfirm settings on the user's behalf can materially alter future spending behavior. Even though the text says to do so only when the user asks, changing a standing approval threshold is a sensitive account action and can be abused or misinterpreted from casual language.

Content

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

md
**确认与扣点**
- 报价返回 `autoConfirm: true` 时直接生成,不要再问「要不要」。生成后一句话交代:本次扣了多少、
  还剩几次免确认(或「免费版小额不问」)。策略由服务端决定:免费版小额不问;付费版前几次不问,之后先问。
- 用户说「以后别问了 / 50 以内直接做」→ 运行 `autoconfirm 50`;说「以后每次先问我」→ `autoconfirm off`;
  说「恢复默认」→ `autoconfirm default`。这是唯一需要你代用户设置的东西,设完复述一句当前规则。
- 报价需要确认时,只说两个数:这次多少积点、余额多少,然后等用户一个「好」。采集是**固定单价**:直接说「15 积点/页 × 3 页 = 45 积点」,不要说成「预计 / 最多」——价格不会浮动;商品评论不够这么多页时只收实际采到的页数,差额自动退回(`pricingNote` 已写好这句)。不要罗列参数。

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
85% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
- 报价返回 `autoConfirm: true` 时直接生成,不要再问「要不要」。生成后一句话交代:本次扣了多少、
  还剩几次免确认(或「免费版小额不问」)。策略由服务端决定:免费版小额不问;付费版前几次不问,之后先问。
- 用户说「以后别问了 / 50 以内直接做」→ 运行 `autoconfirm 50`;说「以后每次先问我」→ `autoconfirm off`;
  说「恢复默认」→ `autoconfirm default`。这是唯一需要你代用户设置的东西,设完复述一句当前规则。
- 报价需要确认时,只说两个数:这次多少积点、余额多少,然后等用户一个「好」。采集是**固定单价**:直接说「15 积点/页 × 3 页 = 45 积点」,不要说成「预计 / 最多」——价格不会浮动;商品评论不够这么多页时只收实际采到的页数,差额自动退回(`pricingNote` 已写好这句)。不要罗列参数。

**新手(`check` 返回 `autoConfirm.mode` 为 `first_runs` / `free_small`,或问"然后呢")**

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
85% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
说「恢复默认」→ `autoconfirm default`。这是唯一需要你代用户设置的东西,设完复述一句当前规则。
- 报价需要确认时,只说两个数:这次多少积点、余额多少,然后等用户一个「好」。采集是**固定单价**:直接说「15 积点/页 × 3 页 = 45 积点」,不要说成「预计 / 最多」——价格不会浮动;商品评论不够这么多页时只收实际采到的页数,差额自动退回(`pricingNote` 已写好这句)。不要罗列参数。

**新手(`check` 返回 `autoConfirm.mode` 为 `first_runs` / `free_small`,或问"然后呢")**
- 报告讲完只推一个下一步,附接口返回的成本,不写死月费用。用户同意再 `schedule --set weekly`。
- 不解释命令名,不列功能清单。用户问「还能做什么」时按他的产品状态给一条建议,不超过三句。

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The entire reference file is written in Chinese and presents all user-facing instructions, warnings, and operational guidance only in that language. There is no indication that the user may choose another language or that the Chinese-only constraint is region-specific and justified, which can violate language/locale policy requirements.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
89% confidence
Finding

The reference explicitly documents that analyze may execute billable actions when server-side autoConfirm rules are met, even without an explicit user confirmation at invocation time. In an agent setting, this can cause unauthorized spending or unintended paid operations because the agent may rely on command shape rather than a fresh human approval.

Content

Scanner excerpt · references/reference.md (reported line 74)May include surrounding context.

md
| `watch delete` | product-operations/watches/{id}(DELETE) | 否;不删除商品资料、评论或历史报告 |
| `watch digest` | product-operations/watch-digest(GET) | 否;确定性摘要,`creditsUsed: 0` |
| `watch events` | product-operations/events(GET) | 否;读取确定性变化事件 |
| `analyze` | analysis/voc·keywords·insight·trend·variant·compare | 是;`--confirm` 或服务端 autoConfirm 命中 |
| `autoconfirm [N\|off\|default]` | user/autoconfirm(GET/PUT) | 否;设置免确认阈值(1.4.5) |
| `deepdive` | products + charts + reviews + reports + VOC quote/analysis | 默认否;`--confirm` 才分析 |
| `reports` / `report` | reports | 否 |

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
93% confidence
Finding

The presence of an autoconfirm setting that changes future confirmation behavior introduces persistent state that can weaken user approval controls across sessions. In an agent environment, modifying or honoring such a threshold can enable repeated paid actions without meaningful consent, amplifying financial and operational risk.

Content

Scanner excerpt · references/reference.md (reported line 75)May include surrounding context.

md
| `watch digest` | product-operations/watch-digest(GET) | 否;确定性摘要,`creditsUsed: 0` |
| `watch events` | product-operations/events(GET) | 否;读取确定性变化事件 |
| `analyze` | analysis/voc·keywords·insight·trend·variant·compare | 是;`--confirm` 或服务端 autoConfirm 命中 |
| `autoconfirm [N\|off\|default]` | user/autoconfirm(GET/PUT) | 否;设置免确认阈值(1.4.5) |
| `deepdive` | products + charts + reviews + reports + VOC quote/analysis | 默认否;`--confirm` 才分析 |
| `reports` / `report` | reports | 否 |
| `alerts` | alerts(`--mark-read` 时 alerts/read) | 否 |

Static analysis

No suspicious patterns detected.