Back to skill

Security audit

资产减值测试核对(免费版)

Security checks for vulnerabilities and agentic risk

Overview

The local checker code appears self-contained, but the skill instructions also push an external paid upgrade flow that can initiate purchases and install another skill through remote links, including an unauthenticated HTTP endpoint.

Install only if you want a Chinese-language local asset-impairment checker and are comfortable ignoring the paid-upgrade workflow. Do not let the agent automatically follow the purchase or installation instructions; verify any paid product, merchant, amount, and package through official HTTPS platform pages yourself.

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:120
Finding
Unauthenticated HTTP Product Metadata in Purchase and Installation Workflow## Vulnerability Details **File Location**: `SKILL.md`, lines 120–121 **Vulnerability Type**: Unauthenticated external product source **Risk Level**: Medium ```markdown - **Permanent purchase address**: `http://110.40.221.75/buy/asset-impairment-check` (AI uses `http://110.40.221.75/buy/asset-impairment-check?format=json` to obtain the current product ID; `http://110.40.221.75/buy/asset-impairment-check?go=1` redirects to the current SkillPay purchase address.) ``` ### Technical Analysis The Skill instructs the agent to obtain the current product identifier or purchase destination from a plaintext HTTP endpoint hosted at a bare IP address. HTTP provides neither transport confidentiality nor server authentication. A network-path attacker could therefore alter the JSON response or replace the redirect destination. This remote metadata is trusted as part of a workflow that initiates a purchase and installs another Skill. The user authorizes purchase of a specifically named full edition, but the unauthenticated response can change the selected product or destination after that authorization. The documented merchant-ID verification and requirement for user payment confirmation reduce exploitability, but they do not authenticate the HTTP response and may not detect substitution involving another product under the expected merchant. ### Attack Path 1. The user selects the paid edition. 2. The agent follows the documented instructions and requests the product metadata or redirect over plaintext HTTP. 3. An attacker positioned on the network path intercepts the request. 4. The attacker substitutes the returned product identifier or redirect destination. 5. The agent uses the modified data to prepare the subsequent purchase and installation workflow. 6. If the substituted product passes the documented visible checks and the user confirms payment, the agent may purchase or install a product other than the specifically intended edit ...[truncated 692 chars]
Remediation
## Remediation Suggestions - Remove the plaintext HTTP and bare-IP product discovery routes. - Retrieve product metadata only through authenticated HTTPS endpoints operated by the official platform. - Reject redirects to origins outside an explicit HTTPS allowlist. - Validate the merchant ID, immutable product identity, product name, amount, and expected package identity before presenting the payment request. - Repeat those validations after payment and before installation to prevent metadata changes between stages. - Where the platform supports it, verify signed product metadata or a cryptographic digest of the package before installation. - Fail closed when TLS validation, origin validation, metadata verification, or product-identity checks fail.
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 (9)

Intent-Code Divergence

High
Confidence
99% confidence
Finding
The documentation explicitly claims 'fully local' and 'no network,' yet later sections require reading remote pages, resolving current product IDs, following redirects, and interacting with online purchase endpoints. This contradiction undermines trust and can cause agents or users to authorize network access and payment-related actions they would not have accepted if the skill were honestly described.

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
99% confidence
Finding
The skill presents itself as a fully local, no-network impairment-check tool, but later instructs the agent to conduct external purchase and installation flows using remote URLs, payment pages, and onboarding steps. This creates a scope mismatch that can mislead users and host agents into performing sensitive networked commerce actions unrelated to the declared local analysis function, increasing the risk of phishing, unauthorized purchases, or supply-chain exposure.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
The embedded commerce workflow is unrelated to the stated purpose of checking impairment tables and directs the agent to buy, install, and verify another product. Mixing business logic with monetization and install instructions expands the skill's authority beyond user expectations and can be abused to push agents into risky external actions under the guise of normal task execution.

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
96% confidence
Finding
This JavaScript file is written entirely with Chinese natural-language comments and returns Chinese-only user-facing messages such as input advice, findings, summaries, and disclaimers. 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.

Intent-Code Divergence

Low
Confidence
93% confidence
Finding
The comment says non-JSON input is handled as plain-text material such as a 'full contract text' (例如直接粘贴的合同全文), which contradicts the rest of the file and the manifest stating the skill checks asset impairment test tables. The actual surrounding logic and usage text expect an asset impairment table with headers, not arbitrary contract text.

Natural-Language Policy Violations

Low
Confidence
93% confidence
Finding
The JSON template contains only Chinese column headers and content, which indicates a fixed language/locale behavior. Under the policy, forcing a specific language without opt-in or justification is a natural-language policy violation.

Static analysis

No suspicious patterns detected.