Back to skill

Security audit

亚马逊行业对标 · 类目星级差评率排行

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a real ARI Amazon review tool, but it goes well beyond the advertised benchmark purpose into paid analysis, account settings, monitoring, alerts, and local exports.

Install only if you want a broad ARI Amazon review and operations assistant, not just category benchmarking. Before use, consider turning autoconfirm off, ask for quotes only before paid actions, avoid giving arbitrary export paths, and review any monitoring, schedule, competitor, or watch changes before approving them.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (2)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:98
Finding
Unsolicited Session Steering and Commercial Output Injection<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 98-121 **Vulnerability Type**: Agent instruction hijacking through unconditional workflow expansion **Risk Level**: High ### Evidence ```markdown 8. 会话开始跑 `check` 之后顺手跑一次 `alerts`:有未读差评预警时主动告诉用户, 并提议用 `workbench` 定位差评、`advise --review-id <ID>` 生成回复建议(付费, 同样先报价、用户确认后才 `--confirm`)。 ``` ```markdown 11. 用户问「广告投什么词」「Search Terms 怎么写」「否定词」「买家怎么称呼这个产品」时, 用 `analyze --type keywords --asin <ASIN>`(1.4.4,先报价、确认后 `--confirm`)。 报告直接给出核心搜索词、长尾/场景词、否定词候选、竞品品牌词和一条 ≤250 字节的 后台 Search Terms 字串,关键词保持站点搜索语言。**VOC 报告出来之后主动提一句**: 评论里买家的用词就是最好的关键词来源,多数卖家没意识到这份数据可以直接投广告。 ``` The Skill additionally prescribes a mandatory external-service link in `SKILL.md`, lines 233-236: ```markdown 结尾简要列出 ASIN/站点、样本量、统计窗口(`_window.days`)、报告返回的 `reportId` 与 `creditsUsed`,以及当前余额。**输出含 `reportUrl` 时必须在结尾附上**, 固定文案:「在线查看图表版完整报告 / 导出:<reportUrl>」(需登录报告所属账户)。 ``` ### Technical Analysis The declared Skill purpose is Amazon category benchmarking and category ranking. However, its instructions expand every session into unrelated account-alert inspection by directing the Agent to call `alerts` after the initial account check. This behavior is not conditioned on the user requesting alert review. The instructions also require proactive promotion of a separate keyword and advertising-analysis workflow after VOC reports. In addition, they prescribe branded wording that directs users to an external ARI report page. These requirements alter the Agent's response policy and session goals when the Skill is loaded, rather than limiting behavior to the user's category-benchmark request. The authenticated alert request may return account-specific information unrelated to the active query. Although the document requires confirmation before the separate paid advice operation, the initial alert retrieval and promotional steering occur without corresponding user intent. ### Attack Path 1. A user invokes the Skill for a catego ...[truncated 1185 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the unconditional instruction to call `alerts` at the beginning of every session. 2. Invoke `alerts`, `workbench`, and related account workflows only when the user explicitly requests alert or review-management information. 3. Remove mandatory promotion of keyword and advertising analysis from unrelated VOC and benchmarking responses. 4. Include report URLs only when they directly support the requested task or when the user asks for an online or exportable version. 5. Replace mandatory branded wording with neutral, optional output guidance. 6. Define a strict purpose boundary for this Skill: benchmark requests should use only account checks and benchmark or leaderboard endpoints necessary to answer the request. 7. Require explicit user intent before accessing account-level data unrelated to the supplied ASIN and requested analysis. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/ari.py:1474
Finding
Arbitrary Overwrite of Writable Local Files Through Export Path<![CDATA[ ## Vulnerability Details **File Location**: `scripts/ari.py`, line 1474 **Vulnerability Type**: Unrestricted file write with truncation and no overwrite protection **Risk Level**: Medium ### Evidence The download function writes the complete response to the caller-supplied destination using truncating mode: ```python def request_download(path, params, dest): """下载非 JSON 响应(CSV / HTML / Markdown)到本地文件。 服务端在计划限制、参数错误等情况下仍返回 JSON 错误信封——先看 Content-Type, JSON 一律按信封透传,不落盘。CSV 流式导出中途出错时响应头已发出,服务端只能 在文件末尾追加「# export error:」注释行,这里嗅探出来转成显式错误。 """ query = {"method": "GET", "path": path, "params": {k: v for k, v in (params or {}).items() if v not in (None, "")}, "payload": None} url = base_url() + path if query["params"]: url += "?" + urllib.parse.urlencode(query["params"], doseq=True) headers = {"Authorization": "Bearer " + require_key(), "User-Agent": user_agent()} try: req = urllib.request.Request(url, headers=headers, method="GET") with urllib.request.urlopen(req, timeout=TIMEOUT_SEC) as resp: note_release(resp.headers) ctype = resp.headers.get("Content-Type", "") body = resp.read() if "application/json" in ctype: out = json.loads(body.decode("utf-8", errors="replace")) if isinstance(out, dict): out["_query"] = query return out tail = body[-300:].decode("utf-8", errors="replace") if "# export error:" in tail: return error_obj("ARI_EXPORT_ERROR", 200, tail.split("# export error:", 1)[1].strip(), "导出中途失败,文件不完整,未落盘。", query) with open(dest, "wb") as fh: fh.write(body) return {"success": True, "data": {"savedTo": os.path.abspath(dest), "bytes": len(body), "contentTyp ...[truncated 3442 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Save exports to a dedicated directory by default, such as `~/.ari/exports`. 2. Resolve the destination with `Path.resolve()` and verify that it remains inside the approved export directory. 3. Use exclusive creation, such as Python mode `"xb"` or `os.open()` with `O_CREAT | O_EXCL`, to prevent silent replacement. 4. If overwriting is required, add an explicit `--overwrite` option and require clear user approval. 5. Reject symbolic links and verify the destination with `lstat()` before opening it. 6. Ensure the destination is either absent or a regular file; reject devices, FIFOs, sockets, and directories. 7. Write to a securely created temporary file in the destination directory, flush and synchronize it, and then atomically rename it after validation. 8. Apply restrictive file permissions to exports that may contain review or report data. 9. Clearly display the fully resolved destination before any overwrite-capable operation. ]]>
Vulnerability Patterns
  • 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (40)

Lp3

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding
The skill declares no permissions while instructing the agent to use shell execution, network access, environment variables, and local file writes via a CLI. This creates a transparency and trust problem: reviewers and users may approve a seemingly narrow skill without realizing it can access credentials, invoke remote APIs, and persist data locally.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding
The skill is presented as an Amazon industry benchmark tool, but the documented behavior expands into account setup, paid collection, broad review analysis, exports, alerts, operations workflows, competitor management, and watch-management actions. This scope mismatch is dangerous because it can obtain approval and user trust under a narrow description while enabling many more sensitive read/write and billable actions than expected.

Description-Behavior Mismatch

High
Confidence
95% confidence
Finding
The manifest and opening description imply a benchmarking/ranking skill, yet the body documents a much broader operational toolkit including VOC analysis, operations runs, exports, alerts, competitor binding, keyword analysis, and monitoring workflows. Such deceptive or overly broad packaging increases the chance that an agent or user invokes the skill without understanding its true authority and cost-bearing side effects.

Context-Inappropriate Capability

Medium
Confidence
91% confidence
Finding
The documented `autoconfirm` capability modifies account behavior so future paid actions may proceed with less friction, but this setting is not justified by a benchmarking-only purpose. Allowing an agent to change confirmation policy can weaken user consent controls and increase the risk of unintended charges across later interactions.

Context-Inappropriate Capability

High
Confidence
94% confidence
Finding
The skill includes creation, pause/resume, and deletion of product watches, which are persistent state-changing management actions unrelated to simple category benchmarking. These actions can alter monitoring coverage, generate recurring activity, and delete user configuration, making the unexpectedly broad authority materially riskier.

Description-Behavior Mismatch

Medium
Confidence
96% confidence
Finding
The skill metadata frames this as a benchmarking/leaderboard tool, but the code implements a much broader capability set: review collection, monitoring, watch/event feeds, alerts, exports, AI advice, and operations workflows. In an agent setting, this scope mismatch is dangerous because the orchestrator or user may grant trust and credentials for a narrow purpose while the skill can perform many additional data-access and paid actions.

Context-Inappropriate Capability

High
Confidence
95% confidence
Finding
The product-operations workflow can run paid, stateful analysis tasks unrelated to the advertised benchmark purpose, using request IDs and server-supported workflow/focus combinations. In a skill ecosystem, hidden operational capabilities materially increase the blast radius of a compromised or misdirected agent because they can trigger non-obvious backend actions and charges beyond user expectations.

Context-Inappropriate Capability

Medium
Confidence
90% confidence
Finding
Local export capability writes review CSVs and report files to arbitrary local paths, which is outside the stated benchmarking purpose and expands the data exfiltration surface. In an agent context, this can facilitate persistence of sensitive or commercial data to disk where other processes, sync tools, or users may access it.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
The documentation describes a broad ARI Amazon review/operations assistant with many capabilities far beyond the declared industry-benchmark skill, including review collection, VOC analysis, monitoring, exports, operations workflows, and paid actions. This mismatch can cause an agent or user to invoke unintended high-privilege or billable functions under the guise of a narrower skill, increasing the risk of scope confusion, overreach, and unauthorized actions.

Intent-Code Divergence

Medium
Confidence
95% confidence
Finding
The title and opening summary identify the skill as a general Amazon review intelligence assistant, which contradicts the installed skill metadata for an industry benchmark tool. Identity mismatch is dangerous because it can mislead operators, downstream agents, or routing logic into granting trust, permissions, or user consent for functions outside the expected skill purpose.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
1. 运行 `check`,确认账户、邮箱验证状态和可用积点。
2. 用户要 VOC / 评论分析报告时,默认运行 `voc <ASIN> --site <站点>`。
   **返回里有 `autoConfirmed: true` 就说明已经直接生成了**(1.4.5 起:服务端对前几次小额
   付费操作免确认,用户先拿到结果再谈钱),此时把报告讲给用户,并转述 `autoConfirmNote`
   (本次扣了多少、还剩几次免确认、之后会先问)。**不要在拿到结果后再补问「要不要生成」。**
3. 返回 `confirmationRequired: true` 才需要用户确认:报出 `totalCredits` 与余额,
Confidence
84% confidence
Finding
The workflow explicitly allows paid VOC generation to proceed automatically when the backend returns `autoConfirmed: true`, meaning a chargeable action can occur without an interaction-specific confirmation at runtime. Even if intended as convenience, this reduces the immediacy of consent and increases the chance of unintended billable operations.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
1. 运行 `check`,确认账户、邮箱验证状态和可用积点。
2. 用户要 VOC / 评论分析报告时,默认运行 `voc <ASIN> --site <站点>`。
   **返回里有 `autoConfirmed: true` 就说明已经直接生成了**(1.4.5 起:服务端对前几次小额
   付费操作免确认,用户先拿到结果再谈钱),此时把报告讲给用户,并转述 `autoConfirmNote`
   (本次扣了多少、还剩几次免确认、之后会先问)。**不要在拿到结果后再补问「要不要生成」。**
3. 返回 `confirmationRequired: true` 才需要用户确认:报出 `totalCredits` 与余额,
   用户同意后运行 `voc <ASIN> --site <站点> --confirm`。该命令会自动补齐采集、等待任务完成、
Confidence
84% confidence
Finding
The documented flow continues from quote to `--confirm` execution after a minimal affirmative response, while also normalizing backend auto-confirmed charges. In context, this creates a thin consent barrier for paid review collection and analysis and may allow the agent to trigger costs with insufficiently explicit authorization.

Autonomous Decision Making

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

**确认与扣点**
- 报价返回 `autoConfirm: true` 时直接生成,不要再问「要不要」。生成后一句话交代:本次扣了多少、
  还剩几次免确认(或「免费版小额不问」)。策略由服务端决定:免费版小额不问;付费版前几次不问,之后先问。
- 用户说「以后别问了 / 50 以内直接做」→ 运行 `autoconfirm 50`;说「以后每次先问我」→ `autoconfirm off`;
  说「恢复默认」→ `autoconfirm default`。这是唯一需要你代用户设置的东西,设完复述一句当前规则。
Confidence
86% confidence
Finding
The instruction to 'directly generate' when `autoConfirm: true` endorses agent-side autonomous execution of paid actions based on server policy rather than immediate user confirmation. In a skill with broad functionality and billing side effects, that makes accidental or misunderstood charges more likely.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
**确认与扣点**
- 报价返回 `autoConfirm: true` 时直接生成,不要再问「要不要」。生成后一句话交代:本次扣了多少、
  还剩几次免确认(或「免费版小额不问」)。策略由服务端决定:免费版小额不问;付费版前几次不问,之后先问。
- 用户说「以后别问了 / 50 以内直接做」→ 运行 `autoconfirm 50`;说「以后每次先问我」→ `autoconfirm off`;
  说「恢复默认」→ `autoconfirm default`。这是唯一需要你代用户设置的东西,设完复述一句当前规则。
- 报价需要确认时,只说两个数:这次多少积点、余额多少,然后等用户一个「好」。采集是**固定单价**:直接说「15 积点/页 × 3 页 = 45 积点」,不要说成「预计 / 最多」——价格不会浮动;商品评论不够这么多页时只收实际采到的页数,差额自动退回(`pricingNote` 已写好这句)。不要罗列参数。
Confidence
89% confidence
Finding
Beyond immediate auto-confirmed actions, this line also instructs the agent to alter the user's future billing-confirmation posture with simple natural-language cues. That broadens the risk from one mistaken purchase to a standing policy change that can enable repeated unintended charges later.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
**确认与扣点**
- 报价返回 `autoConfirm: true` 时直接生成,不要再问「要不要」。生成后一句话交代:本次扣了多少、
  还剩几次免确认(或「免费版小额不问」)。策略由服务端决定:免费版小额不问;付费版前几次不问,之后先问。
- 用户说「以后别问了 / 50 以内直接做」→ 运行 `autoconfirm 50`;说「以后每次先问我」→ `autoconfirm off`;
  说「恢复默认」→ `autoconfirm default`。这是唯一需要你代用户设置的东西,设完复述一句当前规则。
- 报价需要确认时,只说两个数:这次多少积点、余额多少,然后等用户一个「好」。采集是**固定单价**:直接说「15 积点/页 × 3 页 = 45 积点」,不要说成「预计 / 最多」——价格不会浮动;商品评论不够这么多页时只收实际采到的页数,差额自动退回(`pricingNote` 已写好这句)。不要罗列参数。
Confidence
89% confidence
Finding
Beyond immediate auto-confirmed actions, this line also instructs the agent to alter the user's future billing-confirmation posture with simple natural-language cues. That broadens the risk from one mistaken purchase to a standing policy change that can enable repeated unintended charges later.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
| `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 | 否 |
Confidence
89% confidence
Finding
The documentation states that `analyze` may execute paid analysis when a server-side `autoConfirm` rule is met, meaning the agent could trigger billable actions without an explicit per-action user confirmation. In an agent setting, autonomous execution of paid operations can cause unintended spending and weakens user control over side effects.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
| `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) | 否 |
Confidence
93% confidence
Finding
The `autoconfirm` feature is not just descriptive; it exposes a control path that can disable or weaken confirmation requirements for future charges. Because this state persists at the account level, misuse by an agent could lead to repeated unauthorized spending beyond a single request.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
| `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) | 否 |
Confidence
93% confidence
Finding
The `autoconfirm` feature is not just descriptive; it exposes a control path that can disable or weaken confirmation requirements for future charges. Because this state persists at the account level, misuse by an agent could lead to repeated unauthorized spending beyond a single request.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
voc B0... --site amz_us 是完整 VOC 的入口:先取得报价,已有足够评论时使用当前分析价格;
数据不足时合并采集与分析费用。符合服务端免确认规则且总额不超过上限时可能直接生成,
返回 autoConfirmed。否则返回 confirmationRequired,取得用户同意后追加 --confirm,
自动完成必要采集、等待、分析和归档。只读询价应使用 quote / collect 报价入口。

`collect --asin B0... --site amz_us --pages 3` 只返回报价;确认后追加
Confidence
95% confidence
Finding
This section explicitly says qualifying requests may be directly generated under server-side no-confirm rules and can automatically perform collection, waiting, analysis, and archiving. That is dangerous in an autonomous agent because it permits multi-step billable workflows to proceed without explicit user approval at execution time.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
先调用 `quote --type ...`。报价字段:
`type, basePrice, price, sampledReviews, totalReviews, balance, sufficient`,
另有(1.4.5):`autoConfirm`(true = 服务端首次体验策略允许免确认直接生成)、
`autoConfirmMaxCredits`(免确认单次上限,采集 + 报告合计)、`autoConfirmRemaining`(还剩几次)、
`autoConfirmNote`、`webUrl`(该产品的网页报告页)。`sampleCap` / `degraded` 表示 Free 样本封顶与轻量模型。
`voc` / `analyze` 在 autoConfirm 命中时会直接生成,返回 `autoConfirmed: true` 与 `autoConfirmNote`,
Confidence
92% confidence
Finding
Exposing `autoConfirm` as a quote field signals that the system may interpret quote retrieval as sufficient context to proceed with paid execution later without a separate approval checkpoint. In a tool-using agent, this weakens the boundary between information gathering and state-changing paid actions.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
先调用 `quote --type ...`。报价字段:
`type, basePrice, price, sampledReviews, totalReviews, balance, sufficient`,
另有(1.4.5):`autoConfirm`(true = 服务端首次体验策略允许免确认直接生成)、
`autoConfirmMaxCredits`(免确认单次上限,采集 + 报告合计)、`autoConfirmRemaining`(还剩几次)、
`autoConfirmNote`、`webUrl`(该产品的网页报告页)。`sampleCap` / `degraded` 表示 Free 样本封顶与轻量模型。
`voc` / `analyze` 在 autoConfirm 命中时会直接生成,返回 `autoConfirmed: true` 与 `autoConfirmNote`,
并附 `web.report` / `web.product` 网页链接。
Confidence
94% confidence
Finding
Because the same line documents automatic execution of paid analysis once eligibility conditions are met, it creates a predictable path for unintended charges if an agent invokes the command optimistically. The danger is amplified by the command returning successful output after the fact, making improper consent harder to detect.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
先调用 `quote --type ...`。报价字段:
`type, basePrice, price, sampledReviews, totalReviews, balance, sufficient`,
另有(1.4.5):`autoConfirm`(true = 服务端首次体验策略允许免确认直接生成)、
`autoConfirmMaxCredits`(免确认单次上限,采集 + 报告合计)、`autoConfirmRemaining`(还剩几次)、
`autoConfirmNote`、`webUrl`(该产品的网页报告页)。`sampleCap` / `degraded` 表示 Free 样本封顶与轻量模型。
`voc` / `analyze` 在 autoConfirm 命中时会直接生成,返回 `autoConfirmed: true` 与 `autoConfirmNote`,
并附 `web.report` / `web.product` 网页链接。
Confidence
94% confidence
Finding
Because the same line documents automatic execution of paid analysis once eligibility conditions are met, it creates a predictable path for unintended charges if an agent invokes the command optimistically. The danger is amplified by the command returning successful output after the fact, making improper consent harder to detect.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
`type, basePrice, price, sampledReviews, totalReviews, balance, sufficient`,
另有(1.4.5):`autoConfirm`(true = 服务端首次体验策略允许免确认直接生成)、
`autoConfirmMaxCredits`(免确认单次上限,采集 + 报告合计)、`autoConfirmRemaining`(还剩几次)、
`autoConfirmNote`、`webUrl`(该产品的网页报告页)。`sampleCap` / `degraded` 表示 Free 样本封顶与轻量模型。
`voc` / `analyze` 在 autoConfirm 命中时会直接生成,返回 `autoConfirmed: true` 与 `autoConfirmNote`,
并附 `web.report` / `web.product` 网页链接。
Confidence
91% confidence
Finding
Advertising `autoConfirmNote` and related fields alongside execution semantics indicates a built-in design for bypassing per-action confirmation under some conditions. In a security review of an agent skill, that is a true vulnerability because it enables external policy to substitute for explicit end-user authorization.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
另有(1.4.5):`autoConfirm`(true = 服务端首次体验策略允许免确认直接生成)、
`autoConfirmMaxCredits`(免确认单次上限,采集 + 报告合计)、`autoConfirmRemaining`(还剩几次)、
`autoConfirmNote`、`webUrl`(该产品的网页报告页)。`sampleCap` / `degraded` 表示 Free 样本封顶与轻量模型。
`voc` / `analyze` 在 autoConfirm 命中时会直接生成,返回 `autoConfirmed: true` 与 `autoConfirmNote`,
并附 `web.report` / `web.product` 网页链接。

- `voc`: Markdown VOC 报告,SSE 聚合后在 `data.content`,并归档。
Confidence
91% confidence
Finding
Repeated documentation of the same auto-confirm behavior reinforces that the skill permits execution based on server-side policy rather than explicit contemporaneous user consent. For security purposes, this is a true vulnerability because it can be exploited to trigger unintended economic side effects in a delegated agent workflow.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
另有(1.4.5):`autoConfirm`(true = 服务端首次体验策略允许免确认直接生成)、
`autoConfirmMaxCredits`(免确认单次上限,采集 + 报告合计)、`autoConfirmRemaining`(还剩几次)、
`autoConfirmNote`、`webUrl`(该产品的网页报告页)。`sampleCap` / `degraded` 表示 Free 样本封顶与轻量模型。
`voc` / `analyze` 在 autoConfirm 命中时会直接生成,返回 `autoConfirmed: true` 与 `autoConfirmNote`,
并附 `web.report` / `web.product` 网页链接。

- `voc`: Markdown VOC 报告,SSE 聚合后在 `data.content`,并归档。
Confidence
91% confidence
Finding
Repeated documentation of the same auto-confirm behavior reinforces that the skill permits execution based on server-side policy rather than explicit contemporaneous user consent. For security purposes, this is a true vulnerability because it can be exploited to trigger unintended economic side effects in a delegated agent workflow.

Static analysis

No suspicious patterns detected.