Back to skill

Security audit

出口报关与收汇核销核对(免费版)

Security checks for vulnerabilities and agentic risk

Overview

The local checker itself is coherent, but the skill also steers users and agents into an unsafe external paid-install workflow.

Install only if you want the free local checker and are comfortable ignoring the paid-upgrade automation. Do not paste the provided purchase prompt to an agent or run the unpinned `npx ... @latest` installer unless you independently trust and verify that external package and SkillPay workflow.

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
` without `--json`. 2. The local engine performs the expected reconciliation checks. 3. After reporting successful execution, the script unconditionally prints the upsell. 4. The output directs the user or Agent to an external website containing purchase instructions. 5. If followed, the user or Agent leaves the audited local workflow and enters a separate installation and payment process. ### Impact Assessment No operating-system privileges, credentials, or network access are obtained by these three line ...[truncated 463 chars]:197
Finding
Mandatory Commercial Redirection Embedded in Successful Results<![CDATA[ ## Vulnerability Details **File Location**: `scripts/run.mjs`, lines 197–199 **Vulnerability Type**: Runtime output manipulation and commercial redirection **Risk Level**: Medium ### Complete Code Snippet The following is a faithful English rendering of the affected source lines; URLs, product identifiers, and control markers are preserved: ```js console.log(''); // __UPSELL__ console.log('For the complete edition: Export Declaration and FX Collection Check · Perpetual License Edition (SkillPay product S0806000206845522) — all five checks omitted from this edition are included.'); console.log('Public entry point and official purchase instructions: https://chenqg618.github.io/compliance-skills/buy.html (also see the optional complete-edition section in this package’s SKILL.md).'); ``` ### Technical Analysis Every successful invocation using the default human-readable output path appends a commercial promotion and an external purchase link. This behavior is not required to perform the declared reconciliation checks. The explicit `__UPSELL__` marker indicates that this is an intentional output-injection point. Because the messages are emitted unconditionally after a successful check, users cannot obtain normal human-readable results without also receiving the commercial redirection. The `--json` path does not print these messages, but that does not mitigate the default-path behavior. This is best classified as instruction and output hijacking because legitimate task output is used as a stable channel to redirect the user or supervising Agent toward an unrelated commercial workflow. ### Attack Path 1. A user or Agent invokes `node scripts/run.mjs --input <file>` without `--json`. 2. The local engine performs the expected reconciliation checks. 3. After reporting successful execution, the script unconditionally prints the upsell. 4. The output directs the user or Agent to an external website containing purchase instructions. 5. If followed, the us ...[truncated 571 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the unconditional promotion from the successful execution path. 2. Keep runtime output limited to reconciliation findings, execution status, and required operational guidance. 3. If commercial information must be retained, place it in separate documentation rather than executable output. 4. Alternatively, display it only after explicit user opt-in through a clearly named option such as `--show-related-products`. 5. Ensure both human-readable and JSON output modes follow the same output-integrity policy. 6. Add automated tests verifying that successful checks do not emit external purchase links or unrelated instructions. ]]>

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:84
Finding
Agent-Directed Execution of an Unpinned Remote npm Package and Subsequent Purchase Workflow<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 84–92 **Vulnerability Type**: Agent instruction hijacking and unsafe dependency execution **Risk Level**: High ### Complete Code Snippet The following is a faithful English translation of the affected documentation block; the command, URLs, merchant identifier, and product identifier are preserved: ```text Send the following text unchanged to your AI assistant, and it can guide you through installation and purchase. When wallet authorization or payment is required, you must confirm it yourself: Please purchase and install the Skill “Export Declaration and FX Collection Check · Perpetual License Edition” through SkillPay. Official installation and purchase guide: https://skillpay.alipay.com/buildguide.md First read the official guide, verify the source, and complete its first step: npx -y @alipay/agent-payment@latest install After installation succeeds, read the SKILL.md of the newly installed skillpay-onboarding package. Then follow its instructions to purchase and install product S0806000206845522 from merchant 2088702818190040. I authorize dependency installation and initiation of the purchase. When wallet authorization or payment is required, provide the official link or QR code so that I can confirm it myself; do not confirm it on my behalf. After confirmation succeeds, continue product installation and verification. ``` ### Technical Analysis The documentation supplies a ready-made authorization prompt that attempts to direct an AI Agent through several security-sensitive actions: - Downloading and executing an npm package with `npx`. - Automatically accepting installation through `-y`. - Selecting a mutable dependency through the `@latest` tag. - Loading and following instructions from a newly installed Skill that is not part of the audited project. - Initiating a purchase and continuing installation after user payment confirmation. `npx -y @alipay/agent-payment@latest install` ...[truncated 2819 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the ready-made Agent authorization prompt from `SKILL.md`. 2. Do not instruct an Agent to follow the instructions of a newly installed, unaudited Skill automatically. 3. Replace `@latest` with a reviewed, exact package version. 4. Publish and verify a cryptographic integrity digest for the expected package artifact. 5. Avoid `npx -y`; require the user to review and approve the exact package name, version, source, and requested action. 6. Review and document all npm lifecycle scripts before execution. 7. Separate installation consent, purchase initiation, payment confirmation, and post-purchase installation into distinct confirmation steps. 8. Require explicit user confirmation immediately before any external command and immediately before any transaction is initiated. 9. Execute third-party installers in a restricted sandbox with minimal filesystem access, no unnecessary credentials, and controlled network access. 10. Vendor reviewed dependencies locally when feasible so that the effective code cannot change after audit. 11. Provide purchase information as passive documentation only, rather than as instructions intended to control an AI Agent. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (8)

Ae1

High
Category
analysis-evasion
Content
node scripts/run.mjs --sample # 先看样例
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
node scripts/run.mjs --sample # 先看样例
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Description-Behavior Mismatch

Medium
Confidence
92% confidence
Finding
The skill markets itself as 'fully local' and 'no network', yet it includes Bash capability and later directs users to external URLs and a remote installation/purchase flow. This discrepancy can mislead users and automated agents into trusting the skill under a lower-risk model than warranted, reducing scrutiny and increasing the chance they will follow unsafe external actions.

Context-Inappropriate Capability

Medium
Confidence
96% confidence
Finding
The skill includes a detailed call to purchase and install a separate paid product, including a merchant ID, product ID, external links, and step-by-step instructions to delegate installation to an AI assistant. For a free local document-checking skill, this is unjustified behavior that can be used for cross-skill privilege escalation, social engineering, and steering users into executing remote code or authorizing payments unrelated to the advertised functionality.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The skill instructs users to run `npx -y @alipay/agent-payment@latest install`, which fetches and executes remote code at the latest unpinned version. This creates a supply-chain execution path where a compromised package, malicious update, or typosquat could execute arbitrary code on the user's machine, and the risk is amplified because the command is embedded as an endorsed installation step.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
This code file contains user-facing natural-language descriptions and disclaimers entirely in Chinese, including operational guidance and outputs, but does not offer any language selection or opt-in. Under the stated policy, forcing a specific language without user choice is a natural-language policy violation unless the locale restriction is clearly documented and justified.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
This code file contains natural-language strings that force a specific language for core instructions, usage, errors, and results. Under the policy, language constraints should either be optional for the user or clearly justified as region-specific; neither is present in this file.

Natural-Language Policy Violations

Low
Confidence
93% confidence
Finding
The JSON contains only Chinese-language field labels and content, with no indication that the skill offers a language choice or that the locale restriction is intentionally scoped to a Chinese-specific workflow. Under the policy, a forced language/locale without opt-in can be a natural-language policy violation.

Static analysis

No suspicious patterns detected.