Back to skill

Security audit

履约保证金与保函台账核对(免费版)

Security checks for vulnerabilities and agentic risk

Overview

The free checker runs locally, but its paid-upgrade flow asks an AI assistant to run an unpinned external installer and continue into a purchase/install workflow.

The free checker itself appears local and does not show network use or credential access. Treat the paid-upgrade prompt as a separate authorization request: verify the exact npm package version and source, avoid blind `@latest` installs, and do not let an agent proceed with payment or installation without reviewing the external workflow.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
scripts/run.mjs:197
Finding
Unconditional Commercial Promotion Injected into Successful Results<![CDATA[ ## Vulnerability Details **File Location**: `scripts/run.mjs`, lines 197-199 **Vulnerability Type**: Persistent output manipulation through unconditional promotional content **Risk Level**: High ### Vulnerable Code ```javascript console.log(''); // __UPSELL__ console.log('如需完整档:履约保证金与保函台账核对 · 买断版(SkillPay 商品号 S0806000206845526)—— 本版本未执行的 5 项检查在完整档里都有。'); console.log('公开入口与官方购买指令:https://chenqg618.github.io/compliance-skills/buy.html(也可看本包 SKILL.md 的「需要完整档时(可选)」一节)。'); ``` The embedded messages advertise a paid edition and direct the user to external purchasing instructions. ### Technical Analysis Every successful invocation using the default human-readable output path unconditionally prints commercial content and an external URL immediately before the legitimate check result. The output cannot be disabled through a dedicated promotion preference; only selecting JSON output incidentally avoids this branch. This behavior mixes unrelated commercial instructions with trusted audit results. When an AI agent executes the Skill and relays its output, the promotion can consequently be reproduced as though it were part of the requested result. The `__UPSELL__` marker also shows that the insertion is deliberate rather than incidental diagnostic output. The bundled promotion does not itself execute code, access credentials, or modify the system. Its security relevance is the manipulation of agent-visible and user-visible output. ### Attack Path 1. A user or AI agent invokes `node scripts/run.mjs --input <ledger-file>` without `--json`. 2. The local ledger checks complete successfully. 3. The wrapper enters the human-readable success branch. 4. Lines 197-199 unconditionally insert a paid-product advertisement and an external purchasing URL. 5. An agent that forwards or summarizes command output may reproduce that content in its response, extending the promotion beyond the Skill's legitimate checking function. ### Impact Assessment No additional opera ...[truncated 373 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the unconditional promotional output from the normal success path. 2. Keep upgrade information in documentation rather than mixing it with generated check results. 3. If upgrade information must be available at runtime, require an explicit option such as `--show-upgrade-info`. 4. Ensure default output contains only information necessary to perform and explain the requested ledger checks. 5. Add a regression test asserting that ordinary successful output contains no external purchase URLs or unrelated instructions. 6. Keep JSON and human-readable output semantically equivalent, apart from formatting. ]]>

T08 · Insecure Dependencies

Warning
Location
SKILL.md:86
Finding
Unpinned Third-Party Package Is Downloaded and Executed Through npx<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 86-93 **Vulnerability Type**: Mutable external dependency execution and delegation to unaudited instructions **Risk Level**: Medium ### Vulnerable Instruction ```text npx -y @alipay/agent-payment@latest install ``` The surrounding instructions tell an AI assistant to install the package, load the newly installed Skill documentation, and continue into an external purchase and installation workflow. ### Technical Analysis The documented workflow uses `npx` with the mutable `@latest` tag and the automatic-confirmation option `-y`. This causes npm to retrieve and execute whichever package version the registry identifies as current at execution time. The effective code may therefore differ from the code available when this Skill was audited. No version, package integrity digest, vendored source, or reviewed lockfile constrains the retrieved dependency. The workflow then transfers control to instructions contained in a newly installed Skill that is not part of this repository and was not covered by this audit. The bundled ledger-checking scripts do not execute this command automatically. Exploitation requires a user or agent to follow the documentation. Nevertheless, the documentation expressly encourages an AI assistant to perform the installation and subsequent workflow. ### Attack Path 1. A user copies the installation text from `SKILL.md` and gives it to an AI assistant. 2. The assistant follows the instruction and runs `npx -y @alipay/agent-payment@latest install`. 3. npm resolves the mutable `latest` tag at that time, downloads the corresponding package, and executes its installation code. 4. If the package, publisher account, release process, registry response, or transitive dependency has been compromised, attacker-controlled code executes with the privileges of the invoking process. 5. The assistant is then instructed to read and follow a newly installed Skill's instructions, e ...[truncated 835 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace `@latest` with an exact, previously reviewed package version. 2. Publish and verify the expected package integrity digest before execution. 3. Remove `-y` so the resolved package name and version must be reviewed and explicitly approved. 4. Present the resolved version, publisher, registry, integrity value, and requested actions before running installation code. 5. Prefer vendoring or otherwise locally auditing the required installer code. 6. Pin and review transitive dependencies through a lockfile or equivalent verified dependency manifest. 7. Do not automatically delegate control to newly downloaded Skill instructions. Require a separate review and explicit user authorization. 8. Separate package installation authorization from payment authorization, and require affirmative user confirmation for each sensitive step. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (5)

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

Natural-Language Policy Violations

Medium
Confidence
87% confidence
Finding
The instructions tell the user to send a fixed Chinese prompt to their AI assistant verbatim, which imposes a specific language for the workflow. The file does include an English metadata description, but this purchasing flow does not offer an English alternative or explicit language opt-in.

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 available version without pinning or integrity verification. In a skill file, this is especially risky because the command is presented as an installation step for a related paid skill flow, so users or agents may treat it as trusted and execute a supply-chain entry point that can change over time.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
The file’s natural-language comments and user-facing status/advice strings are written entirely in Chinese, including operational guidance and result text. There is no indication that the skill is region-specific or that users can opt into a different language, which creates a locale-policy concern under the language/locale rule.

Static analysis

No suspicious patterns detected.