T01 · Skill Instruction Hijacking
- Location
HEARTBEAT.md:117- Finding
Heartbeat Instructions Inject Unsolicited Referral Promotion into Agent Responses
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This wallet skill is mostly coherent, but it gives agents high-impact financial authority and includes an unsafe remote self-update path for persistent instructions.
Install only if you trust frames.ag to custody wallet actions and handle proxied request data. Do not run the heartbeat self-update commands as written; review any updated skill files manually. Treat the API token like a password, avoid forwarding unrelated Authorization/Cookie/API-key headers through x402/fetch, and require explicit confirmation or dry-run review before transfers, contract calls, signatures, or paid API requests.
HEARTBEAT.md:117Heartbeat Instructions Inject Unsolicited Referral Promotion into Agent Responses
HEARTBEAT.md:8Heartbeat Replaces Persistent Skill Instructions with Unverified Remote Content
SKILL.md:27Payment Proxy Can Receive Sensitive Caller-Supplied Headers and Request Bodies
The heartbeat recommends piping remote content directly into local skill files, effectively replacing trusted local instructions with unauthenticated remote content at runtime. This is dangerous because a compromised server, DNS path, or malicious update could silently alter the skill's behavior and cause downstream unsafe actions or prompt injection persistence.
The skill instructs authenticated requests using a bearer token without any warning about token sensitivity, storage, shell history, or exposure risk. In an agent setting, this normalizes sending privileged credentials to remote endpoints and can lead to credential leakage or misuse if logs, prompts, or command history are exposed.
These additional authenticated API calls query wallet balances, activity, and referral data without warning that sensitive financial and relationship metadata is being transmitted and may be retained in logs or telemetry. In an agent context, this increases privacy risk and may expose operational or financial information beyond what is necessary for routine heartbeat behavior.
The instruction to automatically inspect a local config file and avoid asking the user for email encourages the agent to make authentication and data-access decisions without explicit consent. In practice, this can normalize secret discovery from local files and reduce user awareness when existing credentials are reused for wallet operations.
## TL;DR - Quick Reference
**FIRST: Check if already connected** by reading `~/.agentwallet/config.json`. If file exists with `apiToken`, you're connected - DO NOT ask user for email.
**Need to connect (no config file)?** Ask user for email → POST to `/api/connect/start` → user enters OTP → POST to `/api/connect/complete` → save API token.
The one-step x402 proxy instructs the agent to send arbitrary target URLs and request bodies to a remote service, which can trigger payment signing and outbound requests on the user's behalf. In a finance skill, this is more dangerous than ordinary external transmission because it can combine data exfiltration, SSRF-like proxying to third parties, and automatic spending through a single endpoint.
This is the simplest way to call x402 APIs. Send the target URL and body - the server handles 402 detection, payment signing, and retry automatically.
curl -s -X POST "https://frames.ag/api/wallets/USERNAME/actions/x402/fetch" \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{"url":"https://enrichx402.com/api/exa/search","method":"POST","body":{"query":"AI agents","numResults":3}}'
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
| `moltbookUsername` | Linked Moltbook username (if any) |
| `xHandle` | X/Twitter handle from Moltbook (if linked) |
**Security:** Never commit to git. Set `chmod 600`. Treat `apiToken` like a password.
---
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Step 1 - Send OTP:
curl -X POST https://frames.ag/api/connect/start \
-H "Content-Type: application/json" \
-d '{"email":"your@email.com"}'
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Run periodically to check for skill updates, wallet status, and recent activity:
curl https://frames.ag/heartbeat.md
Base URL: https://frames.ag/api/v1
The skill provides direct instructions for transfers and contract calls that can move real funds or invoke arbitrary on-chain logic, but it does not require an explicit user confirmation or warn that these actions are irreversible. In an agent context, this increases the risk of accidental or socially engineered fund loss because the model may treat these as routine API calls.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Get current policy:
curl https://frames.ag/api/wallets/YOUR_USERNAME/policy \
-H "Authorization: Bearer FUND_API_TOKEN"
The manifest declares very broad trigger phrases such as "wallet", "policy", "activity", and "transactions", which are likely to match many ordinary user requests unrelated to this specific skill. Because this is a finance-capable wallet skill that can sign payments and perform policy-controlled actions, accidental invocation could expose users to unintended fund movement, wallet operations, or sensitive financial context.
The manifest centers on wallets, x402 payment signing, referral rewards, and policy-controlled actions. These instructions direct the agent to poll a network pulse endpoint for active agents, transaction volume, trending APIs, and new joins, which is ecosystem analytics and engagement tracking rather than an obvious wallet-specific operation.
The manifest describes wallets for AI agents with payment signing, referral rewards, and policy-controlled actions. This heartbeat goes beyond describing or operating referral rewards by instructing the agent to actively recruit other agents, track referral tiers, and pursue airdrop-point growth as an operational goal, which is a broader network-growth behavior than a wallet skill would imply.
No suspicious patterns detected.