Back to skill

Security audit

Financial Product Workflow

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent financial-product workflow guidance, but it needs Review because it documents unverified shell installation and automatic writes to external work tools without clear per-action approval.

Review before installing. Prefer the direct prompt-template usage path or verify any installer before running it. If using integrations, configure least-privilege tokens, keep sensitive financial/customer data out of generated tickets and docs unless approved, and require explicit confirmation before the agent creates, updates, posts, queries, or sends anything in external systems.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • 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 (1)

T03 · Remote Payload Retrieval and Execution

Error
Location
README.md:38
Finding

Unverified Remote Installation Script Executed Through a Shell Pipeline

Content
View full analysis

Vulnerability Details

File Location: README.md, lines 38–40
Vulnerability Type: Remote payload retrieval and execution
Risk Level: Critical

Vulnerable Code

bash
# 1. Install OpenClaw
curl -fsSL https://openclaw.ai/install.sh | bash

Technical Analysis

The installation instructions retrieve a mutable script from an external URL and pass its response directly to Bash. The script is executed without prior inspection, version pinning, checksum verification, or cryptographic signature validation.

The reviewed package does not contain the remote script, so its effective behavior cannot be established by auditing this project. Its contents may also change after the Skill has been reviewed. Although installing OpenClaw is relevant to one documented usage method, immediate execution of an unverified remote response is not the minimum privilege or trust required. The project also documents a direct prompt-template usage method that does not require this installation command.

This creates a supply-chain execution channel. Compromise of the remote server, publishing process, DNS resolution, TLS trust chain, or hosting account could replace the expected installer with arbitrary shell commands.

Attack Path

  1. An attacker compromises the remote installation endpoint or another component trusted while resolving and retrieving the script.
  2. The attacker modifies the response from https://openclaw.ai/install.sh to include malicious shell commands.
  3. A user follows the README and runs the documented pipeline.
  4. curl downloads the attacker-controlled response.
  5. The pipe sends that response directly to Bash without an opportunity for inspection or integrity verification.
  6. Bash executes the payload with all permissions available to the invoking user.
  7. The payload may access user-readable data, modify files, steal credentials available to the process, install additional software, or establi ...[truncated 695 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove the curl | bash pipeline from the documentation.
  2. Prefer a trusted package manager with a pinned package version and documented publisher identity.
  3. If a standalone installer is necessary:
    • Publish versioned, immutable artifacts.
    • Provide a SHA-256 or stronger checksum through a separate trusted channel.
    • Sign releases cryptographically and document signature verification.
    • Instruct users to download the installer to a local file.
    • Require users to verify the checksum or signature before execution.
    • Allow inspection before running the script.
  4. Do not instruct users to run the installer with sudo or elevated privileges unless a specific operation demonstrably requires it.
  5. Document the files, network destinations, permissions, and system changes made by the installer.
  6. Retain and emphasize the direct prompt-template usage path, which does not require remote code execution.
  7. Pin documentation examples to a specific reviewed release rather than a mutable generic endpoint.

A safer high-level workflow is:

bash
curl -fL -o openclaw-install.sh "https://example.invalid/releases/vX.Y.Z/install.sh"
echo "<published-sha256>  openclaw-install.sh" | sha256sum --check -
less openclaw-install.sh
bash openclaw-install.sh

The placeholder URL and checksum must be replaced with an authentic, immutable release and independently published integrity value.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
Findings (24)

External Script Fetching

High
Category
Supply Chain
Confidence
99% confidence
Finding

The command downloads a remote shell script and immediately executes it via bash without any integrity verification, pinning, or review step. This creates a direct remote code execution path: if the server, DNS, TLS endpoint, or distribution channel is compromised, users may run attacker-controlled code on their machines.

Content

Scanner excerpt · README.md (reported line 40)May include surrounding context.

bash
# 1. 安装 OpenClaw
curl -fsSL https://openclaw.ai/install.sh | bash

# 2. 安装技能
clawhub install financial-product-workflow

Chaining Abuse

High
Category
Tool Misuse
Confidence
98% confidence
Finding

The use of '| bash' is a classic unsafe chaining pattern because it combines retrieval and execution into a single trust step, preventing inspection and increasing the blast radius of any compromise. In this skill's context, the README is explicitly instructing users to run the command as part of setup, which materially raises the likelihood of exploitation.

Content

Scanner excerpt · README.md (reported line 40)May include surrounding context.

bash
# 1. 安装 OpenClaw
curl -fsSL https://openclaw.ai/install.sh | bash

# 2. 安装技能
clawhub install financial-product-workflow

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · TOOLS_SUPPORT.md (reported line 222)May include surrounding context.

md
**获取 API Token:**
1. 访问:https://www.figma.com/developers/api#access-tokens
2. 点击"Get personal access token"
3. 记录:`FIGMA_API_TOKEN`

**环境变量:**

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · TOOLS_SUPPORT.md (reported line 248)May include surrounding context.

md
**前提条件:**
- GitHub 账号
- Personal Access Token

**获取 Token:**
1. 访问:https://github.com/settings/tokens

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README encourages integration with external tools such as Jira, Confluence, GitHub, messaging platforms, and search services, but it does not warn users that product requirements, business plans, financial workflows, or possibly user data may be transmitted to third-party systems. In a financial-product workflow, this omission is more sensitive than usual because the artifacts being shared can contain regulated, confidential, or customer-related information.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The activation description contains broad triggers such as building financial product workflows, '金融产品从 0 到 1', and chaining OpenClaw + Claude Code + development tools without narrowing the allowed tasks or requiring confirmation before sensitive actions. In a finance-oriented skill, ambiguous activation increases the chance the agent is invoked for high-impact planning or tool-assisted operations beyond the user's precise intent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly describes automatic creation of Jira issues, Confluence pages, prototypes, Git branches, notifications, and analytics queries, but does not present a prominent user-facing consent and authorization model for external writes or data access. In this context, the skill is more dangerous because it targets financial-product workflows, where project data, internal documents, and analytics may contain sensitive business or regulated information, and automatic actions could modify systems or expose data without clear approval.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The document encourages use of scripts that send notifications and create or modify artifacts in external systems, but it does not clearly require user confirmation or prominently warn that content will be transmitted to third-party services. In an agent skill context, that omission can lead to unintended outbound data sharing or unauthorized changes if the agent acts on user prompts automatically.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file is written entirely in Chinese and frames the skill prompts in Chinese without any indication that users may choose another language. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The entire checklist is written only in Chinese and does not state that the skill is limited to a Chinese-speaking or China-region workflow, nor does it offer an alternative language or user opt-in. Under the stated policy, forcing a specific language without user choice or explicit justified scope is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This markdown file is written entirely in Chinese and does not indicate that other languages are supported or that Chinese is a region-specific requirement. Under the policy rule for natural-language violations, forcing a specific language without user opt-in is reportable when no justification or alternative is provided.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The document recommends using Push and SMS reminders to drive activation, but it does not include a user-facing warning or caution about consent, notification frequency, or the privacy implications of contacting users through these channels. For markdown files, SQP-2 applies when behavior affecting user privacy or system integrity is described without corresponding warnings.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The analytics API example sends event/query data to an external endpoint without any mention of authentication, data classification, minimization, or user/privacy disclosure. In a financial-product workflow, analytics payloads can easily include sensitive behavioral or customer data, so normalizing outbound transmission without safeguards increases the risk of unauthorized disclosure or policy violations.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

This duplicate detection points to the same outbound POST request and carries the same risk profile: unqualified external data transmission. The danger is amplified by the financial-product context, where event metadata may reveal user behavior, campaign effectiveness, or other sensitive operational information if copied into real implementations without controls.

Content

Scanner excerpt · references/self-operation-design.md (reported line 344)May include surrounding context.

md
import requests

def query_task_completion_rate(start_date, end_date):
    response = requests.post(
        'https://api.sensorsdata.cn/api/v1/event',
        json={
            'event': 'task_complete',

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

This duplicate detection points to the same outbound POST request and carries the same risk profile: unqualified external data transmission. The danger is amplified by the financial-product context, where event metadata may reveal user behavior, campaign effectiveness, or other sensitive operational information if copied into real implementations without controls.

Content

Scanner excerpt · references/self-operation-design.md (reported line 344)May include surrounding context.

md
import requests

def query_task_completion_rate(start_date, end_date):
    response = requests.post(
        'https://api.sensorsdata.cn/api/v1/event',
        json={
            'event': 'task_complete',

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

The hardcoded external analytics domain reinforces a pattern of directing data to a third-party service without contextual safeguards. Even though the snippet is illustrative, example code in agent skills can be copied directly, and in a regulated financial setting that can lead to uncontrolled data egress or reliance on unvetted endpoints.

Content

Scanner excerpt · references/self-operation-design.md (reported line 345)May include surrounding context.

md
def query_task_completion_rate(start_date, end_date):
    response = requests.post(
        'https://api.sensorsdata.cn/api/v1/event',
        json={
            'event': 'task_complete',
            'start_date': start_date,

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The Jira example demonstrates use of credentials and external ticket creation with no safeguards for secret handling or content sanitization. In this context, generated issues could contain internal financial-product details, customer information, or regulated content, and embedding credential patterns in example code encourages insecure handling and accidental disclosure to third-party systems.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The template explicitly instructs the model to "用中文" for output, which imposes a fixed language choice in natural-language guidance. Under the policy criteria, forcing a specific language without user opt-in is a locale/language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The file presents all usage instructions, warnings, and examples exclusively in Chinese. Under the policy, forcing a specific language without user opt-in can be a natural-language policy violation unless the locale constraint is explicitly justified, which is not stated here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

All user-facing instructions in the README are presented in Chinese, and the file does not indicate that other languages are supported or that Chinese is a required locale. This can constitute a language/locale policy issue when users are forced into a specific language without opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

The file consistently forces Chinese-language interaction and examples, including headings, instructions, and feedback phrases, but does not indicate that users may choose another language. The policy for SQP-3 flags language or locale constraints when they are imposed without explicit opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

This markdown file is written entirely in Chinese, beginning with the title on L001, and does not provide any indication that language selection is optional or that the content is intentionally limited to a Chinese-speaking audience. Under the policy for natural-language issues, a forced locale or language without user opt-in can be a policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The file is entirely framed in Chinese and presents the prompt as a fixed Chinese-language template, with no indication that users may choose another language or locale. Under the policy criteria, forcing a specific language without user opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

该 markdown 文件整体以中文撰写,并未说明这是面向特定中文团队的限定文档,也没有提供其他语言或用户选择。按规则,强制单一语言且无用户 opt-in 可能构成语言/locale 政策违例。

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
references/tool-integration.md:477