T08 · Insecure Dependencies
- Location
SKILL.md:30- Finding
Unpinned Third-Party CLI Installed Globally
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is coherent for blockchain escrow work, but it asks users to handle wallet secrets and real asset transfers in ways that need careful review before use.
Review this skill carefully before installing. Use a hardware wallet or external signer where possible, avoid putting private keys or mnemonics in prompts, shell commands, source files, shell history, or long-lived environment variables, and test first with low-value testnet wallets. Before any transaction, independently verify the chain, contract address, token, amount, recipient or payee, arbiter, demand data, expiration, and approval scope. Prefer a pinned, locally installed, provenance-verified CLI rather than an unpinned global npm install.
SKILL.md:30Unpinned Third-Party CLI Installed Globally
SKILL.md:38Wallet Private Keys and Mnemonics Accepted Through Command-Line Arguments
references/typescript-sdk.md:12SDK Example Encourages Embedding a Private Key in Source Code
The skill explicitly instructs users to pass private keys and mnemonics on the command line and via environment variables without any safety warning or preference for safer signing methods. This is dangerous because CLI arguments can be exposed via shell history, process listings, logs, and agent telemetry, leading to wallet compromise and theft of on-chain assets.
The skill walks users through escrow creation and related asset-moving transactions, including token approvals and native-token transfers, without any explicit warning that these actions can move real funds irreversibly. In an agent-driven context, missing verification steps for chain, token, recipient/arbiter addresses, expiration, and amounts materially increases the risk of accidental loss or sending value to the wrong contract or network.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
Use the --arbiter address and the encoded --demand hex from step 1:
# ERC20 escrow with auto-approve
alkahest --private-key 0xKEY escrow create \
--erc20 \
--token 0xTOKEN_ADDRESS \
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
Use the --arbiter address and the encoded --demand hex from step 1:
# ERC20 escrow with auto-approve
alkahest --private-key 0xKEY escrow create \
--erc20 \
--token 0xTOKEN_ADDRESS \
This reference documents escrow flows that lock assets and later release them based on arbiter validation, but it does not explicitly warn users that interacting with these contracts can result in real asset loss if they choose the wrong contract, arbiter, demand bytes, or network. In a CLI skill intended for buyers, sellers, and oracles, omission of financial-risk warnings increases the chance of unsafe execution of irreversible on-chain actions.
The payment section states that payments transfer assets immediately upon attestation creation, but it still lacks a prominent end-user warning that these are immediate, non-escrowed transfers with no hold period. In the context of an operational skill for interacting with contracts via CLI, users could misinterpret payment obligations as safer escrow-like actions and send assets irreversibly to unintended payees.
The reference instructs users to instantiate a wallet client with a raw private key string and later documents auto-arbitration behavior, but it does not include clear safety guidance about secret handling or the risks of automated on-chain decisions. In a blockchain escrow context, users may copy this pattern into production, hardcode secrets, or deploy unattended arbitration logic that can irreversibly move value based on flawed logic or compromised infrastructure.