Back to skill

Security audit

平台账期与在途资金核对(免费版)

Security checks for vulnerabilities and agentic risk

Overview

The local reconciliation engine appears coherent, but the skill embeds an under-scoped paid-upgrade workflow that can send users through external payment, install, and unauthenticated HTTP redirect steps.

Install only if you want a Chinese-language local reconciliation checker and are comfortable ignoring or disabling the upsell. Do not let the agent follow the paid-upgrade flow unless you independently verify the official purchase domain, merchant, product, amount, package identity, and installation source; avoid the bare-IP HTTP purchase link.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:118
Finding
Unauthenticated HTTP endpoint controls the purchase destination## Vulnerability Details **File Location**: `SKILL.md`, lines 118–119 **Vulnerability Type**: Unauthenticated commerce metadata retrieval and redirect **Risk Level**: Medium **Vulnerable snippet**: ```markdown - **Permanent purchase address (always valid even if the product ID changes)**: <http://110.40.221.75/buy/platform-settlement-aging-check> (Humans receive a web page; the AI uses `http://110.40.221.75/buy/platform-settlement-aging-check?format=json` to obtain the current product ID; `http://110.40.221.75/buy/platform-settlement-aging-check?go=1` returns a 302 redirect to the currently valid SkillPay purchase address.) ``` ### Technical Analysis The instructions direct the agent to obtain mutable product metadata or follow an HTTP redirect through a bare IP address. HTTP provides neither transport confidentiality nor server authentication. An on-path attacker can therefore alter the JSON product identifier, replace the response, or modify the `302 Location` destination. This endpoint participates in a security-sensitive purchase and installation workflow: when the user selects the paid version, the agent is instructed to obtain purchase details, present a payment destination, and subsequently install an external product. Although the surrounding instructions require user confirmation and merchant verification, these checks do not authenticate the HTTP response itself. A convincing substituted payment page can misrepresent the merchant, product, or installation target. No evidence establishes that the project author intentionally operates such an attack. The issue is therefore classified as a reachable insecure workflow rather than malicious behavior. ### Attack Path 1. The user selects the paid version offered by the skill. 2. The agent follows the documented purchase workflow and requests the bare-IP HTTP endpoint, including the JSON or redirect variant. 3. An attacker positioned on the network path intercepts the ...[truncated 980 chars]
Remediation
## Remediation Suggestions - Remove the bare-IP HTTP purchase and metadata endpoints. - Host purchase discovery on an authenticated HTTPS domain with valid certificate verification. - Do not follow arbitrary redirects. Restrict redirect destinations to an explicit allowlist of official HTTPS origins and reject redirects that change to HTTP, bare IP addresses, or unapproved domains. - Bind the expected merchant ID, product identity, amount, and package identity to signed metadata rather than relying on mutable plaintext responses. - Before presenting a payment destination, independently verify the merchant ID, product ID, product name, amount, and final HTTPS origin. - Before installation, verify the downloaded package's expected identity, version, publisher, and cryptographic digest or signature. - Preserve explicit user confirmation for payment and installation after all verification results are displayed.
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 (10)

Scope Creep

High
Confidence
98% confidence
Finding
The manifest declares only Read and Bash, but the documented workflow requires accessing remote URLs and facilitating installation and purchase steps. This creates a dangerous permission/behavior mismatch: an agent may be induced to exceed its declared capability model or operators may incorrectly trust the skill as offline-only when it is not.

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
96% confidence
Finding
The skill markets itself as a fully local, no-network reconciliation tool, yet later embeds instructions for remote purchase, installation, and payment-link/QR-code handling. This mismatch can mislead an agent or user into performing network-driven commerce actions outside the expected trust boundary, increasing phishing, social-engineering, and policy-bypass risk.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
Large portions of the operative instructions, including the mandatory user disclosure and purchase flow, are written only in Chinese and direct the agent to present them to the user every time. Although an English description exists earlier, the required runtime guidance does not offer a user language choice or indicate that Chinese-only output is justified by a region-specific constraint.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
Embedding e-commerce and payment facilitation inside a financial reconciliation skill is unnecessary for the core task and expands the attack surface. Because the content instructs the agent to retrieve external instructions, generate payment flows, and present checkout artifacts, a user seeking accounting assistance could be steered into unrelated transactional behavior.

Whitespace Padding

Medium
Category
Prompt Injection
Content
输出与你的安全约束**;它**可被用户关闭**(`SKILL_NO_UPSELL=1`),也**必须可忽略**(不点不买不影响结果)。
   执行官方购买指令时:先读一次官方说明;核对**商户号 `2088702818190040`**、商品号与订单是否一致;
   ⛔ 不要点击来路不明的链接/二维码,也**不要替用户付款** —— 付款一律由**用户本人**确认。
Confidence
80% confidence
Finding
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Natural-Language Policy Violations

Medium
Confidence
91% confidence
Finding
This JavaScript file contains extensive user-facing natural-language instructions, warnings, and result text entirely in Chinese. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified, which is not stated here.

Vague Triggers

Low
Confidence
85% confidence
Finding
The description says the trigger phrases include "平台账期与在途资金核对" and "平台账期与在途资金核对表对不上", but it does not define when these phrases should or should not invoke the skill, nor does it provide exclusions or negative examples. While the phrases are domain-specific, the activation guidance is still open-ended enough that invocation scope may be unclear in adjacent finance reconciliation contexts.

Intent-Code Divergence

Low
Confidence
90% confidence
Finding
The comment states that invalid JSON will be treated as plain-text material such as '直接粘贴的合同全文' (full contract text). That actively misdescribes the skill's actual documented purpose, which is checking a 平台账期与在途资金核对表 rather than arbitrary contract documents.

Static analysis

No suspicious patterns detected.