Back to skill

Security audit

爽文模拟器V1.0虾舍出品

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent paid game launcher, but it can install a remotely returned paid skill package without enough verification or explicit install consent.

Install only if you trust the operator and fulfillment service. Before paying or installing the returned package, verify the package identity, source, publisher, version, digest or signature, and requested permissions; do not treat a successful payment as proof that the delivered skill is safe.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • 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)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:94
Finding

Unverified Remote Skill Package Retrieval and Automatic Installation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:94-99; supporting flow in references/alipay-paid-access.md:59-65
Vulnerability Type: Remote payload retrieval and execution
Risk Level: Critical

Vulnerable code in SKILL.md:94-99:

markdown
When fulfillment returns a paid Skill package:

1. Present the package name, version, and install instruction.
2. If the environment can install Skills directly, install it.
3. If not, provide the exact package URL or slug returned by the MCP.
4. Then tell the user to invoke the installed paid Skill to start.

Supporting code in references/alipay-paid-access.md:59-65:

markdown
1. Call the merchant payment MCP/tool to create the order.
2. If a cashier URL is returned, pass the complete URL to the Alipay payment skill/MCP.
3. Wait for payment completion.
4. Query merchant order status or receive successful payment result.
5. Call `paid_skill_fulfill` or the operator fulfillment endpoint.
6. Return the real Skill package install URL/slug.
7. Only then start or install the full scenario.

Technical Analysis

The launcher directs the Agent to retrieve a Skill package from an external fulfillment MCP or operator-controlled endpoint and install it automatically when direct installation is supported. The remotely returned package is not part of the audited project and can therefore change after this launcher has been reviewed.

The workflow does not require any of the following controls before installation:

  • An allowlisted registry or download origin
  • Cryptographic verification of the publisher
  • A signed package manifest
  • A pinned package digest
  • Validation that the returned package ID and version correspond to the purchased SKU
  • Inspection of the package's instructions, scripts, permissions, or tool access
  • Explicit user approval after displaying the package origin and requested privileges

A signed or short-lived d ...[truncated 2058 chars]

Remediation
View remediation

Remediation Suggestions

  1. Restrict package retrieval to a fixed HTTPS registry and an explicit allowlist of trusted origins. Reject redirects to unapproved domains.
  2. Require every package to include a cryptographically signed manifest. Verify the signature against a locally pinned publisher key before installation.
  3. Bind fulfillment metadata to the transaction, including the SKU, package ID, version, publisher, digest, and expected permissions.
  4. Pin an approved SHA-256 digest for each package version and verify the complete downloaded artifact before extraction or installation.
  5. Reject fulfillment responses whose package identity, version, digest, or publisher does not match the merchant-side SKU mapping.
  6. Inspect package contents before activation. Block executable scripts, undeclared tools, excessive permissions, path traversal entries, symbolic-link escapes, and unexpected nested downloads.
  7. Display the verified publisher, source domain, version, digest, and requested permissions to the user, then require explicit confirmation before installation.
  8. Install downloaded packages in a sandbox with least-privilege tool access. Do not inherit payment credentials, merchant API tokens, or unrelated session secrets.
  9. Separate payment confirmation from package trust decisions. A valid payment must never imply that a returned package is safe.
  10. Maintain an append-only audit log of fulfillment responses, package digests, signature results, installation decisions, and activated versions.
  11. Remove the automatic-installation instruction until all authenticity and integrity checks are implemented. Default to rejecting unverifiable packages rather than providing or invoking them.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (12)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are broad and overlap with ordinary conversation, making accidental invocation plausible. In this skill, unintended activation is more dangerous because invocation can steer users into a payment flow and package-installation path they did not explicitly request.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill instructs the agent to create payment orders and install returned packages, but it does not require a strong, explicit consent and warning flow for charges or installation effects. In a conversational agent, this can lead to surprise billing, social engineering, or unsafe installation of externally returned packages/URLs.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The Start Fast instructions explicitly say "Start in Chinese immediately," which imposes a language choice regardless of the user's preferred language. The file does not offer a language option or document a justified locale restriction.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The file says the full turn loop belongs to the paid skill, yet later directs the launcher to track scenario runtime state. This inconsistency creates an unsafe boundary where the launcher may accumulate premium narrative state or hidden variables before entitlement is confirmed, undermining the access gate.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill is presented as a paid launcher/catalog, but it also instructs the agent to maintain and export detailed gameplay runtime state. That expands the effective scope from storefront to scenario engine, increasing the chance of leaking paid content, hidden state, or player/session data during handoff, debugging, or export flows.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The display name, short description, and default prompt all position the skill as a Chinese-language experience, and the prompt specifically directs use of a Chinese scenario package. There is no indication that users can opt into another language or that the locale restriction is required for a documented regional purpose.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill enables implicit invocation without any activation constraints, allowing the agent to route users into a paid scenario workflow based on broad contextual matches rather than explicit consent. In this skill’s context—commercial content involving browsing, buying, unlocking, and starting paid scenarios—this increases the risk of unintended activation, deceptive upsell behavior, and user confusion about whether they intentionally invoked the skill.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The activation text says to use this whenever the user wants to "buy, unlock, pay for, or enter a paid scenario," which is a broad natural-language condition rather than a specific trigger scope. It does not define boundaries or negative examples, so ordinary requests about payment or access could unintentionally invoke this skill.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The file instructs the agent to present user-facing payment text in Chinese, and a second required fallback message is also only provided in Chinese. This imposes a specific language on users without documenting a locale requirement or offering an alternative language choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The fallback text shown when no payment tool is available is written solely in Chinese, with no instruction to localize based on the user's preference. Because the file later references international users, the lack of language choice appears to be an unjustified locale restriction rather than a region-specific exception.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% 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 · references/system-archetypes.md (reported line 157)May include surrounding context.

md
- refuses to lie,
- shares last resource,
- saves a piece of evidence,
- protects a child or elder without asking for reward.

Payoff:

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The scenario titles and descriptions from L07 onward are presented only in Chinese, while the file provides no indication that language selection is optional or region-specific. Under the policy rule, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.