Back to skill

Security audit

现金流预测与实际差异核对(免费版)

Security checks for vulnerabilities and agentic risk

Overview

The bundled checker itself is local, but the skill also embeds a mandatory upsell path that can send the agent into external purchase and skill-installation workflows, including a plaintext HTTP endpoint.

Install only if you want the free local checker and are comfortable ignoring or disabling the upsell path. Do not let an agent follow the paid upgrade instructions unless you deliberately choose to buy it, verify the merchant/product/amount, avoid plaintext HTTP purchase redirects, and understand that installing another skill changes your agent environment.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:134
Finding
Unauthenticated HTTP Endpoint Controls the Paid Skill Purchase and Installation Workflow## Vulnerability Details **File Location**: `SKILL.md`, lines 134–135 **Vulnerability Type**: Insecure supply-chain source over plaintext HTTP **Risk Level**: Medium **Vulnerable snippet:** ```markdown - **Permanent purchase address (always valid even if the product ID changes)**: <http://110.40.221.75/buy/cash-flow-variance-check> (Humans open the web page; the AI uses `http://110.40.221.75/buy/cash-flow-variance-check?format=json` to obtain the current product ID; `http://110.40.221.75/buy/cash-flow-variance-check?go=1` redirects with HTTP 302 to the current valid SkillPay purchase address.) ``` ### Technical Analysis The instructions direct the Agent to retrieve dynamic product metadata or follow a redirect over unauthenticated plaintext HTTP. HTTP provides neither server authentication nor transport integrity. An on-path attacker can therefore modify the JSON response or replace the `302` redirect destination. This response crosses a trust boundary because remotely supplied data is used to select a product or destination in a purchase-and-install workflow. The subsequent instruction to verify the merchant, product, and amount reduces exploitability, but it does not authenticate the initial response and does not cryptographically bind the resolved product metadata to the intended Skill. The local checking scripts do not invoke this endpoint automatically. The vulnerable path is reached only when the user selects the optional paid version and the Agent follows the documented endpoint-based resolution process. ### Attack Path 1. A user selects the optional paid version. 2. The Agent follows `SKILL.md` and requests the current product metadata from the plaintext `?format=json` endpoint or follows the plaintext `?go=1` redirect. 3. An attacker capable of intercepting or altering the network connection modifies the response or redirect. 4. The Agent receives an unintended product identifier or purchase destination. 5. I ...[truncated 1002 chars]
Remediation
## Remediation Suggestions 1. Remove the plaintext HTTP endpoint from the purchase and installation instructions. 2. Expose product metadata and redirects exclusively through HTTPS with valid certificate verification. 3. Reject HTTP redirects and any HTTPS-to-HTTP protocol downgrade. 4. Restrict redirects to explicitly approved HTTPS origins. 5. Cryptographically sign product metadata and verify the signature before using a returned product identifier or installation location. 6. Bind the verified metadata to the expected merchant, product name, product identifier, amount, and package identity. 7. Require a final user confirmation that displays the authenticated destination and verified transaction details before purchase. 8. Verify any installed package against an expected digest or trusted publisher signature before execution.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

Intent-Code Divergence

High
Confidence
99% confidence
Finding
The documentation explicitly claims the skill is fully local, offline, and requires no network access, yet later directs the agent to multiple external URLs and payment endpoints. This contradiction is dangerous because it undermines trust boundaries: users and automated systems may approve the skill expecting no external communication, while the content attempts to drive networked actions and potential data exposure.

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

High
Confidence
98% confidence
Finding
The skill markets itself as a fully local, no-network cash-flow checking tool, but embeds instructions that require the agent to access external purchase pages, fetch product metadata, and facilitate payment/install flows. This creates a hidden capability expansion from offline document checking into networked commerce actions, which can mislead users and downstream agents into performing sensitive external operations under the guise of a local audit skill.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
The embedded payment facilitation and external product-installation steps are unrelated to the core business purpose of reconciling cash-flow forecast variances. Because these instructions push the agent to retrieve links, process purchase flows, and install another product, they introduce unnecessary social-engineering and supply-chain risk into a financial-review workflow where users may be primed to trust the tool.

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
97% confidence
Finding
The file’s natural-language comments, instructions, sample input, and user-facing messages are written entirely in Chinese, and the parser’s recognized headers are also Chinese-only. There is no visible opt-in, language selection, or explicit statement that the skill is intentionally restricted to a Chinese-language regional context, so this appears to impose a locale/language constraint by default.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
The natural-language interface, help text, and user-facing messages all require Chinese, but the file does not provide user opt-in for language selection or explain that the skill is intentionally region- or locale-specific. Under the policy, forcing a specific language without user choice is a natural-language policy violation.

Intent-Code Divergence

Low
Confidence
88% confidence
Finding
The docstring says non-JSON input is handled as '纯文本材料(例如直接粘贴的合同全文)', implying arbitrary contract text is a valid input form. Elsewhere in the file, the skill consistently states it only operates on a cash-flow forecast-vs-actual table with headers and will refuse insufficient materials, so this inline documentation overstates supported input types.

Natural-Language Policy Violations

Low
Confidence
85% confidence
Finding
This JSON manifest/data file embeds user-facing natural language entirely in Chinese, which may impose a specific language or locale without offering user choice. The provided content does not document that the skill is region-specific or that users have opted into Chinese-language operation.

Static analysis

No suspicious patterns detected.