T08 · Insecure Dependencies
- Location
SKILL.md:5- Finding
Unpinned Third-Party Wallet Package Can Introduce Supply-Chain Code
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is openly for crypto wallet payments, but it relies on an unpinned external wallet package for sensitive money-handling operations.
Review this skill carefully before installing. Use only a dedicated testnet wallet or a low-balance wallet, pin and verify the llm-wallet-mcp package before running it, avoid global or elevated installs, keep private keys and WALLET_ENCRYPTION_KEY out of chats and repositories, and approve payments only after checking the destination URL, amount, network, and recipient.
SKILL.md:5Unpinned Third-Party Wallet Package Can Introduce Supply-Chain Code
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
llm-wallet create --label "my-agent-wallet"
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
User: "Yes"
Agent executes: llm-wallet pay "https://api.weather.com/current?location=London"
## Usage in OpenClaw
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
User: "Yes"
Agent executes: llm-wallet pay "https://api.weather.com/current?location=London"
## Usage in OpenClaw
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
User: "Yes"
Agent executes: llm-wallet pay "https://api.weather.com/current?location=London"
## Usage in OpenClaw
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
User: "Yes"
Agent executes: llm-wallet pay "https://api.weather.com/current?location=London"
## Usage in OpenClaw
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
User: Yes, approved
Agent: [Executes: llm-wallet pay "https://api.translate.com/v1?text=hello&to=es"]
Translation: "hola"
Payment completed: 0.002 USDC
Transaction: 0xabc123...
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
User: Yes, approved
Agent: [Executes: llm-wallet pay "https://api.translate.com/v1?text=hello&to=es"]
Translation: "hola"
Payment completed: 0.002 USDC
Transaction: 0xabc123...
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
User: Yes, approved
Agent: [Executes: llm-wallet pay "https://api.translate.com/v1?text=hello&to=es"]
Translation: "hola"
Payment completed: 0.002 USDC
Transaction: 0xabc123...
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
User: Yes, approved
Agent: [Executes: llm-wallet pay "https://api.translate.com/v1?text=hello&to=es"]
Translation: "hola"
Payment completed: 0.002 USDC
Transaction: 0xabc123...
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
User: Yes, approved
Agent: [Executes: llm-wallet pay "https://api.translate.com/v1?text=hello&to=es"]
Translation: "hola"
Payment completed: 0.002 USDC
Transaction: 0xabc123...
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
User: Yes, approved
Agent: [Executes: llm-wallet pay "https://api.translate.com/v1?text=hello&to=es"]
Translation: "hola"
Payment completed: 0.002 USDC
Transaction: 0xabc123...
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
User: Yes, approved
Agent: [Executes: llm-wallet pay "https://api.translate.com/v1?text=hello&to=es"]
Translation: "hola"
Payment completed: 0.002 USDC
Transaction: 0xabc123...
The README instructs users to run npx llm-wallet-mcp without pinning a version, which allows execution of whatever package version is current at install time. This creates a supply-chain risk: a malicious or compromised future release could be fetched and executed unexpectedly in an environment that may have access to wallet data or secrets.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# Make payment to weather API
llm-wallet pay "https://api.weatherapi.com/v1/current.json?q=London" \
--method GET
# Response:
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# Make POST request with JSON body
llm-wallet pay "https://api.image-gen.com/v1/generate" \
--method POST \
--body '{"prompt": "sunset over ocean", "size": "1024x1024"}'
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
llm-wallet pay "https://api.down-service.com/endpoint"
# Error: Network timeout after 3 retry attempts
# Service may be temporarily unavailable
# Try again later or check: https://status.down-service.com
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
llm-wallet pay "https://api.mainnet-service.com/endpoint"
### Multiple Wallets
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# Register multiple APIs
llm-wallet register-api "https://api.weather.com/v1" --name weather
llm-wallet register-api "https://api.translate.com/v1" --name translate
llm-wallet register-api "https://api.image.com/v1" --name image_gen
# List all registered
llm-wallet list-apis
The documentation recommends running an unpinned package via npx llm-wallet-mcp, which fetches and executes whatever version is current at invocation time. In a wallet-management context, that creates a meaningful supply-chain risk: a compromised or maliciously updated package could gain access to wallet material, alter payment behavior, or exfiltrate secrets.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
llm-wallet create --label "my-agent-wallet"
The mainnet funding section warns that real money is involved but does not explicitly tell users to verify destination address, network, and the irreversibility of transfers. In a crypto wallet setup guide, that omission is safety-relevant because users may permanently lose funds by sending assets to the wrong address, wrong chain, or untrusted intermediary.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"network": "polygon-amoy", "maxAmountRequired": "1000", // 0.001 USDC "payTo": "0xCA3953e536bDA86D1F152eEfA8aC7b0C82b6eC00", "resource": "https://api.example.com/weather" }] }
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"network": "polygon-amoy", "maxAmountRequired": "1000", // 0.001 USDC "payTo": "0xCA3953e536bDA86D1F152eEfA8aC7b0C82b6eC00", "resource": "https://api.example.com/weather" }] }
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"network": "polygon-amoy", "maxAmountRequired": "1000", // 0.001 USDC "payTo": "0xCA3953e536bDA86D1F152eEfA8aC7b0C82b6eC00", "resource": "https://api.example.com/weather" }] }
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"network": "polygon-amoy", "maxAmountRequired": "1000", // 0.001 USDC "payTo": "0xCA3953e536bDA86D1F152eEfA8aC7b0C82b6eC00", "resource": "https://api.example.com/weather" }] }
No suspicious patterns detected.