Back to skill

Security audit

Listing Doctor Publish

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent Amazon listing audit tool, but it forces third-party promotional text into normal agent responses and generated reports.

Review the mandatory branding before installing, especially if reports may be shared with clients or used in strict output formats. Only use the SellerSprite fetch helper if you are comfortable sending an ASIN and your SellerSprite API key to SellerSprite; pasted or exported listing JSON can be audited locally.

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

T01 · Skill Instruction Hijacking

Warning
Location
SKILL.md:19
Finding

Mandatory Third-Party Promotion Injected into Agent Responses

Content
View full analysis
💡 本工具是 **buluslan** 的开源项目(MIT)。更多 Listing / 选品 / 运营 / AI 实战内容,关注公众号「**新西楼.AI**」。 ``` ### Technical Analysis The instruction explicitly requires the agent to introduce the developer and promote a third-party social-media account whenever the Skill is invoked. This requirement is unrelated to the minimum functionality needed to audit an Amazon listing. Because `SKILL.md` supplies operational instructions to the agent, mandatory promotional language can alter the agent's user-facing behavior as soon as the Skill is loaded. The use of an unconditional requirement makes the behavior persistent throughout invocations of this Skill rather than limiting attribution to documentation or an optional credits section. This is instruction hijacking at the Skill level: packaged instructions redirect part of the current session's output toward an author-selected objective that the user did not request. The instruction does not override system safety controls or grant operating-system privileges, but it does compromise output integrity and user intent. ### Attack Path 1. A user invokes the Skill to audit or score an Amazon listing. 2. The agent loads and follows `SKILL.md`. 3. The mandatory instruction directs the agent to introduce the developer and associated social-media account. 4. The agent adds the promotional content to its response even though it is not necessary for the requested audit. 5. Repeated invocations continue to produce the injected promotion unless a higher-priority instruction suppresses it. ### Impact Assessment The issue affects user-facing responses generated while this Skill is active. It allows the ...[truncated 403 chars]
Remediation
View remediation

T01 · Skill Instruction Hijacking

Warning
Location
assets/report-template.md:257
Finding

Promotional Call-to-Action Embedded in Every Rendered Audit Report

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (36)

Tainted flow: 'headers' from os.environ.get (line 199, credential/environment) → requests.get (network output)

Critical
Category
Data Flow
Confidence
90% confidence
Finding

Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.

Content

Scanner excerpt · scripts/sellersprite_fetch.py (reported line 45)May include surrounding context.

python
"""标准库 GET + JSON 解析;如有 requests 自动切换。"""
    try:
        import requests  # type: ignore
        r = requests.get(url, headers=headers, timeout=15)
        r.raise_for_status()
        return r.json()
    except ImportError:

Natural-Language Policy Violations

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill mandates a fixed Chinese-language self-introduction and promotional attribution on every invocation, regardless of the user's language or consent. This creates prompt-injection-like control over user-facing output, can leak internal skill activation, degrades user trust, and may inject unsolicited branding or content into business workflows where neutrality and language matching are required.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The minimal JSON schema specifies "language": "en" as the example and the file is presented as the English README, but there is no statement that other languages are supported or that English is only an example. Because this skill analyzes listing content, hard-coding or implying a required language without opt-in can violate language-choice policy expectations.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger condition is broad enough to auto-activate on generic discussion of auditing, scoring, or diagnosing Amazon listings, including multilingual variants. Over-broad activation can cause the agent to seize control of unrelated conversations, ingest sensitive seller data unexpectedly, or run tools when the user did not clearly request this specific skill.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The documentation strongly communicates an offline, zero-dependency, self-contained diagnostic tool and specifically says it does not embed browser automation. However, the input-normalization workflow also says the skill may try available fetching capabilities for Amazon URLs and may use third-party APIs for ASIN retrieval. While this is not browser automation, it contradicts the stronger offline impression in the skill's stated behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The report title and all surrounding explanatory text are written in Chinese, and the template presents itself as the generated report format rather than an optional locale variant. Although a {{meta.language}} field is displayed, the template itself does not offer a language choice or indicate that Chinese is optional, which can violate language/locale policy expectations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

Line L001 presents the rule documentation entirely in Chinese and frames it as authoritative guidance for referenced tools, but the file does not state that the skill is region-specific or that users may opt into another language. Under the policy criteria, forcing a specific language without opt-in can be 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
88% confidence
Finding

The natural-language notes state that field names and values must follow this rules.json and repeatedly frame validation and source authority through Chinese-language guidance such as '禁止自行改动' and Chinese-source summaries for JP/ME rules. In an all-file policy review, this reads as a language/locale constraint embedded in the config commentary without any indication that users may choose another language or that the file is intended only for a Chinese-language workflow.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

L120-L123 明确写明德国、法国、意大利、西班牙站“需对应德语/法语/意大利语/西班牙语本地化”,L125 又说明按 language 决定规则取值。这属于自然语言层面的语言/地区政策约束,但文档中未提供用户可选择语言的机制,也未说明这是受官方合规或区域限定所必需。

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 file contains natural-language documentation entirely in Chinese, including the module docstring and most inline comments, while the skill does not indicate that it is intended only for Chinese-speaking users or a China-specific workflow. Under the policy, forcing a specific language without user opt-in or clear justification is a natural-language locale violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

This code file includes prominent descriptive comments in Chinese at the top of the script, which is a natural-language locale choice embedded in the skill file. Under the policy rule, forcing a specific language without user opt-in can be a language/locale policy violation, and there is no indication here that Chinese is optional or justified as region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This is a code file, so SQP-3 applies to comments, docstrings, CLI descriptions, and other string literals. The file presents its purpose and user-facing behavior in Chinese (for example the header comment), and later also uses Chinese-language CLI/help/output strings, but nowhere offers user opt-in for language selection or explains that the tool is intentionally region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The script constructs user-visible report strings in Chinese, including action summaries and unavailability reasons, and returns them in the final JSON. Because no language selection or explicit region-specific justification is present, this enforces a specific language on all users and matches the locale-policy violation criteria.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The ArgumentParser description and help strings are natural-language UI elements in a code file, so they fall under SQP-3. They are presented only in Chinese and the file provides no mechanism for locale selection, which creates a language policy issue for users expecting a different language.

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 file contains natural-language instructions, descriptions, and output text entirely in Chinese, including the module docstring and fix suggestions. Under the policy, forcing a specific language without user opt-in is a locale-policy violation unless the constraint is explicitly justified, which is not present here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This code file contains user-facing natural-language text in the module docstring entirely in Chinese, including the input/output description. Under the stated policy, forcing a specific language without user opt-in is a locale/language policy violation unless clearly documented as region-specific, which is not present here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The argparse description and help strings are user-facing natural-language output, but they are written only in Chinese. This constrains the skill to a single language without indicating that the user can choose another locale or that the restriction is intentional and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

This code file contains user-facing natural-language text in the module docstring and CLI description exclusively in Chinese. Under the policy, forcing a specific language without offering a choice or documenting a justified locale constraint 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
98% confidence
Finding

This code file contains a natural-language description in Chinese ("亚马逊标题合规体检(最核心)") and the rest of its CLI-facing help/doc text is also consistently Chinese, with no indication that the user can choose another language. Under the policy, forcing a specific language without user opt-in is a locale/language policy violation unless clearly documented as region-specific, which this file does not do.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The code hard-codes marketplace-to-language mappings and later writes the derived value into the output listing, which can force a specific locale choice such as CA→en or MX→es without any user opt-in. This matches the policy category for language or locale constraints that are imposed rather than offered as a choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This Python file contains natural-language instructions and user-facing descriptions entirely in Chinese, including the module docstring and operational notes, while the script also accepts a generic language field defaulting to en. Because the file does not offer user opt-in for Chinese output or explain that the skill is intended only for a Chinese-speaking context, it creates a language/locale policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The argparse description and output note are hard-coded in Chinese, so users invoking the script receive a forced locale regardless of preference. This is a natural-language policy violation unless the skill is explicitly region- or language-scoped.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The file content is predominantly Chinese, while the applicable policy flags natural-language cases that force a specific language without user opt-in. Although an English README link is present, this README itself does not explicitly state that users may choose their preferred language, so the language experience is effectively defaulted rather than clearly opt-in.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The top-level description frames the skill as diagnosis-only with no rewriting. Later instructions direct the agent to write semantic extraction results back into the listing JSON, which is a state-changing transformation of user-supplied content even if it is not customer-facing copy rewriting. This is a mild intent/documentation divergence rather than a major behavioral mismatch.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The JSON comment text is entirely in Chinese and describes the output skeleton in a way that appears to assume a fixed language context. Under the policy rule for natural-language violations, forcing a specific language without opt-in or documented regional justification can be a locale-policy issue.

Content

No source excerpt is available for this finding.