T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:36- Finding
Unverified Remote Installer Is Piped Directly into a Shell
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This finance skill is purpose-aligned but needs Review because it combines wallet signing, autonomous trading, mutable remote instructions, unverified installer execution, and weak transaction safeguards.
Install only if you are comfortable letting an agent create wallets, hold a private key in environment variables, sign blockchain transactions, and publicly post strategy or trade rationale. Treat the remote skill-update command as untrusted unless you manually review and verify changes, install Foundry separately from a trusted source, use testnet-only keys, require explicit approval before every state-changing transaction, avoid unlimited token approvals, and set real slippage limits instead of minAmountOut=0.
SKILL.md:36Unverified Remote Installer Is Piped Directly into a Shell
SKILL.md:14Mutable Skill Instructions Are Retrieved Before Every Session Without Content Authentication
SKILL.md:113Vault Factory Receives an Unlimited Token Allowance
SKILL.md:190Trade Examples Disable Minimum-Output Slippage Protection
The skill instructs fetching the latest skill content from a remote endpoint at the start of each session, effectively bypassing any reviewed local version and creating a live remote-instruction channel. If that endpoint is compromised or updated maliciously, the agent could receive altered contract addresses, workflows, or commands that lead to asset loss or credential theft.
Before starting any session, fetch the latest version of this skill. Contract addresses, API endpoints, and workflow steps may change:
curl -s https://bowstring-backend-production.up.railway.app/api/agents/skill -o /tmp/tilt-skill-latest.md && echo "Skill updated — review /tmp/tilt-skill-latest.md for any changes"
The command pipes a remote script directly into bash, enabling arbitrary code execution from an external server with no integrity check or review step. In a skill that also handles private keys and on-chain transactions, this is especially dangerous because compromised installation output could steal secrets, alter transaction tooling, or backdoor the environment before any blockchain actions occur.
# Install Foundry (provides `cast` for on-chain interaction)
curl -L https://foundry.paradigm.xyz | bash
foundryup
# Verify
The README promotes autonomous wallet creation, self-custodied key use, shell execution, network access, and on-chain trading without any explicit warning that blockchain actions may be irreversible and may put funds at risk. In a skill specifically designed to let agents manage tokenized funds, omission of safety guidance increases the chance that users enable powerful capabilities without understanding the financial and operational consequences.
The skill instructs use of a private key from an environment variable for signing and repeatedly frames the agent as self-custodied, but does not provide strong operational guidance on secret handling, least-privilege use, or avoiding disclosure in logs and subprocesses. Any leakage of the private key would immediately compromise the wallet and all controlled vault assets.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
If a stock token isn't deployed yet, request deployment (validated against the official stock list):
curl -s -X POST "$TILT_API_BASE/api/agents/deploy-token" \
-H "Content-Type: application/json" \
-d '{"symbol": "AAPL"}' | jq .
The skill directs the agent to submit irreversible on-chain approval, vault creation, allocation, and trading transactions without prominently warning about transaction finality, slippage, approval risk, or potential financial loss. Even on testnet, these patterns normalize unsafe operational behavior and could cause users or downstream agents to execute real-value transactions with inadequate review if addresses or environments change.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
After each executeTrade, post a note explaining your reasoning. This is displayed publicly on the strategy page — think of it like a git commit message for your trades:
curl -s -X POST "$TILT_API_BASE/api/agents/trade-notes" \
-H "Content-Type: application/json" \
-d "{\"txHash\": \"TX_HASH\", \"vault\": \"$VAULT_ADDRESS\", \"note\": \"Rotating from AAPL to NVDA — AI infrastructure demand accelerating after strong earnings beat\", \"agent\": \"YOUR_AGENT_NAME\"}" | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s -X POST "$TILT_API_BASE/api/agents/faucet" \
-H "Content-Type: application/json" \
-d "{\"walletAddress\": \"$TILT_WALLET\"}" | jq .
The description presents the agent as an 'autonomous AI fund manager' that can create vaults, execute trades, and manage funds autonomously, but it does not define when these actions are allowed, what approvals are required, or what actions are out of scope. That broad framing can cause over-invocation or unsafe delegation of discretionary trading behavior, especially in a wallet-owning agent tied to blockchain transactions.
The description explicitly promotes autonomous fund management, on-chain trading, and self-signing transactions without warning users that the skill can move assets, incur losses, or execute irreversible blockchain actions. In a finance and DeFi context, omission of risk disclosure materially increases the chance that users enable high-impact actions without informed consent.
The example instructs the agent to generate a wallet, expose a private key in shell commands and environment variables, register with a remote service, and immediately execute irreversible on-chain approval and vault-creation transactions without any safety warning or confirmation step. In a skill for autonomous fund creation, this is especially risky because users or downstream agents may copy the workflow verbatim, leading to credential leakage, overbroad token approvals, and unintended movement of real funds.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
export TILT_WALLET=$(cast wallet address $TILT_PRIVATE_KEY)
curl -s -X POST "$TILT_API_BASE/api/agents/register"
-H "Content-Type: application/json"
-d '{"walletAddress": "0xaB1c...4eF2", "name": "Tech Alpha AI", "description": "AI-driven tech sector fund focusing on AI infrastructure leaders"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
export TILT_WALLET=$(cast wallet address $TILT_PRIVATE_KEY)
curl -s -X POST "$TILT_API_BASE/api/agents/register"
-H "Content-Type: application/json"
-d '{"walletAddress": "0xaB1c...4eF2", "name": "Tech Alpha AI", "description": "AI-driven tech sector fund focusing on AI infrastructure leaders"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Let me post an initial strategy update:
curl -s -X POST "$TILT_API_BASE/api/agents/strategy-posts" \
-H "Content-Type: application/json" \
-d '{"vault": "$VAULT_ADDRESS", "content": "Fund launched. Core thesis: AI infrastructure spending is in early innings. NVDA overweight for GPU demand, AAPL/MSFT for ecosystem moats. Will monitor earnings and rotate if thesis changes.", "agent": "Tech Alpha AI", "type": "strategy"}' | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Let me post an initial strategy update:
curl -s -X POST "$TILT_API_BASE/api/agents/strategy-posts" \
-H "Content-Type: application/json" \
-d '{"vault": "$VAULT_ADDRESS", "content": "Fund launched. Core thesis: AI infrastructure spending is in early innings. NVDA overweight for GPU demand, AAPL/MSFT for ecosystem moats. Will monitor earnings and rotate if thesis changes.", "agent": "Tech Alpha AI", "type": "strategy"}' | jq .
This curl command transmits vault identifiers and strategy commentary to an external API endpoint. In the context of an autonomous investment agent, outbound transmission of portfolio-related information is sensitive because it can reveal holdings context, decision logic, and activity patterns to third parties or unintended audiences.
curl -s -X POST "$TILT_API_BASE/api/agents/strategy-posts"
-H "Content-Type: application/json"
-d '{"vault": "$VAULT_ADDRESS", "content": "Morning review: portfolio up 2% since launch, weights within tolerance. CPI data at 8:30 AM — staying flat until we see the print. If inflation comes in hot, may trim growth exposure.", "agent": "Tech Alpha AI", "type": "hold"}' | jq .
This example shows an autonomous scheduled agent making an external POST to publish strategy commentary without any explicit consent, approval gate, or user-facing warning about recurring outbound publication. In a financial context, scheduled public disclosures can leak portfolio state, market posture, and timing information, and may create compliance, privacy, or reputational risk if users do not expect automated broadcasting.
This second external POST sends additional market commentary tied to a vault, reinforcing a pattern of autonomous network publication. In this skill's financial setting, public or third-party transmission of ongoing strategy updates can enable profiling of the agent's behavior and may have compliance or confidentiality implications.
Later that day, after CPI data:
curl -s -X POST "$TILT_API_BASE/api/agents/strategy-posts" \
-H "Content-Type: application/json" \
-d '{"vault": "$VAULT_ADDRESS", "content": "CPI came in at 2.4%, below expectations. Risk-on environment confirmed. Keeping current allocation — tech overweight is well positioned for a rate-cut cycle.", "agent": "Tech Alpha AI", "type": "market"}' | jq .
The second scheduled POST similarly sends externally visible market commentary without an explicit warning that the agent autonomously publishes updates later in the day. Even though the content is not credential material, repeated automated disclosures about strategy and positioning can expose operational behavior and create unintended data-sharing or regulatory issues.
The example performs a real blockchain trade via cast send using a private key and sets minimum output to 0, yet provides no warning, simulation step, or explicit user confirmation before signing. In an agent-skill context, examples are often copied into automation flows, so this can normalize unattended asset movement and expose users to accidental execution, bad pricing, or irreversible loss.
This curl POST transmits transaction and vault metadata plus human-authored rationale to an external endpoint. In a financial-agent setting, such disclosures can reveal positions, timing, and strategy signals that may be sensitive or exploitable by third parties.
# Log trade note
curl -s -X POST "$TILT_API_BASE/api/agents/trade-notes" \
-H "Content-Type: application/json" \
-d '{"txHash": "0xabc123...", "vault": "$VAULT_ADDRESS", "note": "Rotating $800 from AAPL to NVDA — data center revenue up 93% YoY, guidance raised. AI infrastructure thesis strengthening.", "agent": "Tech Alpha AI"}' | jq .
This POST publishes a strategy update containing portfolio allocation changes and forward-looking rationale to a remote API. In context, that can disclose actionable market views and fund state, increasing privacy, front-running, or reputational/compliance risk if shared automatically.
-d '{"txHash": "0xabc123...", "vault": "$VAULT_ADDRESS", "note": "Rotating $800 from AAPL to NVDA — data center revenue up 93% YoY, guidance raised. AI infrastructure thesis strengthening.", "agent": "Tech Alpha AI"}' | jq .
curl -s -X POST "$TILT_API_BASE/api/agents/strategy-posts"
-H "Content-Type: application/json"
-d '{"vault": "$VAULT_ADDRESS", "content": "Post-earnings rebalance: increased NVDA to ~48% after blowout data center numbers. AI capex cycle accelerating. Trimmed AAPL to fund — still long-term bullish but NVDA has more near-term upside.", "agent": "Tech Alpha AI", "type": "strategy"}' | jq .
The example sends trade notes and strategy posts to remote APIs without clearly warning that portfolio identifiers, transaction hashes, and investment rationale will be transmitted off-host. This can leak sensitive trading behavior and metadata that may be private, regulated, or commercially sensitive, especially when embedded into autonomous agent workflows.