Claw Future

Security checks across static analysis, malware telemetry, and agentic risk

Overview

This is a coherent futures-trading assistant, but it can place real orders through a background daemon and has several review-worthy gaps around automated trading controls, credential handling, local command access, and native build provenance.

Review carefully before installing. Use a SimNow or other simulation account first, do not connect a live trading account until you trust the code and daemon controls, protect config.json, check and remove active schedules/condition orders, and verify the native CTP bridge build path before running start.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

#
ASI02: Tool Misuse and Exploitation
High
What this means

A mistaken or overly broad tool invocation could place, schedule, or cancel futures orders in a real account.

Why it was flagged

The executable layer directly forwards high-impact trading, mass-cancel, and scheduled-order requests to the daemon. The artifacts document agent-side confirmation, but the code shown does not enforce a separate approval, risk limit, volume cap, dry-run mode, or account-mode guard before sending these financial actions.

Skill content
def cmd_order(args) -> None: ... _out(_send(cmd)) ... def cmd_cancel_all(args) -> None: ... _out(_send({"cmd": "cancel_all"})) ... def cmd_schedule_order(args) -> None: ... _out(_send({"cmd": "add_schedule", "schedule": sched}))
Recommendation

Require enforced confirmation in the CLI or daemon for all order/cancel/schedule/condition-order actions, add user-configurable limits, and default to simulation or dry-run until explicitly enabled.

#
ASI08: Cascading Failures
High
What this means

A scheduled futures order may fire more often than the user intended, potentially causing repeated unintended trades.

Why it was flagged

The scheduler checks only the time and whether it already fired today. It does not enforce the SKILL.md-described weekday/daily/once options, so a schedule intended to run once or only on weekdays can repeat on later days.

Skill content
class ScheduleEngine: """定时任务,每天在指定时间触发一次。""" ... def check(self, now): ... if sched.get("time") != cur_time: continue ... if sched.get("triggered_date") == cur_date: continue ... sched["triggered_date"] = cur_date
Recommendation

Persist and enforce schedule scope such as once/daily/weekday, expire one-time schedules after firing, and show the next fire time before accepting any scheduled trade.

#
ASI04: Agentic Supply Chain Vulnerabilities
High
What this means

First run may compile and load native code linked against unintended or unreviewed local binaries.

Why it was flagged

From scripts/bridge, ../../.. resolves above the skill root, not to the skill's own root/api directory. Because the bridge is auto-built and linked to CTP SDK binaries, this can fail or use SDK files outside the reviewed package path.

Skill content
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
LINUX_SDK="$REPO_ROOT/api/linux"
Recommendation

Fix the SDK path to stay inside the skill directory, verify or pin native SDK binaries, and require explicit user acknowledgement before compiling/loading native components.

#
ASI07: Insecure Inter-Agent Communication
High
What this means

Another local process that can reach or discover the daemon port may be able to imitate the CLI and send trading commands.

Why it was flagged

The local CLI protocol shown sends plain JSON commands to a localhost daemon port with no visible authentication token or per-command approval marker. For a daemon that can place trades, local command identity and authorization boundaries matter.

Skill content
s = socket.create_connection(("127.0.0.1", port), timeout=_TIMEOUT)
s.sendall((json.dumps(cmd, ensure_ascii=False) + "\n").encode())
Recommendation

Add a per-install secret token, bind permissions to the current user, validate command authorization in the daemon, and reject trade-mutating commands without an approval nonce.

#
ASI03: Identity and Privilege Abuse
Medium
What this means

Installing and using the skill means trusting it with credentials that can access and trade in the configured CTP account.

Why it was flagged

The skill requires CTP account identifiers, trading/market-data passwords, AppID, and auth code. This is expected for a futures-trading integration, but the registry metadata declares no primary credential or required environment variables.

Skill content
"user_id": "你的账户号", "md_password": "行情密码", "td_password": "交易密码", "app_id": "your_app_id", "auth_code": "your_auth_code"
Recommendation

Use a simulation account first, restrict account permissions where possible, protect config.json, and ensure the registry metadata clearly declares the credential requirements.

#
ASI10: Rogue Agents
Medium
What this means

The assistant can continue monitoring and trading after setup, even if the user is no longer actively watching the conversation.

Why it was flagged

The background daemon and condition-order design are disclosed and purpose-aligned, but they keep acting after the chat turn ends and can automatically send orders when market conditions are met.

Skill content
设置后即使用户不在线,daemon 后台自动执行。
Recommendation

Review active alerts and schedules regularly, stop the daemon when not needed, and remove any condition or scheduled orders that should no longer be active.