T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Unpinned Global Installation of a Security-Critical External Package
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a financial automation helper, but it gives agents access to private wallet keys, full card details, and confirmation-skipping fund transfers without enough safeguards.
Review carefully before installing. Only use this skill if you trust the Payall CLI publisher and are comfortable giving an agent access to wallet signing, card details, and transaction commands. Do not paste private keys into chat or command arguments, avoid --yes for any transfer or withdrawal, verify every destination address and amount yourself, and avoid revealing full card details unless strictly necessary.
SKILL.md:14Unpinned Global Installation of a Security-Critical External Package
SKILL.md:26Wallet Private Key Exposed Through Command-Line Arguments and Persistent Storage
SKILL.md:70Full Payment-Card Credentials Exposed to Agent Context in Machine-Readable Form
SKILL.md:174Irreversible Financial Transactions Bypass Explicit User Confirmation
The skill trigger is extremely broad and claims authority over many financial and crypto-related tasks, increasing the chance the agent invokes it in situations involving sensitive funds, cards, or credentials without tight user intent matching. In a high-risk financial context, overbroad routing can cause unnecessary exposure to private keys, card data, and transaction workflows.
The skill explicitly documents cards detail --reveal --json returning full PAN, CVV, expiry, and billing details for agent use, but does not require a prominent warning, explicit consent, or a just-in-time confirmation before exposing this highly sensitive payment data. This creates a direct path for unnecessary disclosure of full card credentials to an agent or logs, which could enable fraud or account compromise.
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
Always show a fee comparison (`payall cards fees`) so the user knows exactly what they'll pay.
## Display Guidelines
When presenting card info to users, only show what they care about: card name, balance, status, card number, fees, etc. Skip internal fields like rank, id, binding_id, brand, rating, or general_ratings — these are technical identifiers that don't help the user.
The skill encourages use of payall auth login --key <private_key> and notes that the key is auto-saved for agents, but does not clearly warn users about the extreme sensitivity of private keys or the risks of passing them on the command line where they may leak via shell history, process listings, or agent logs. In a crypto wallet context, exposure of a private key can lead to total wallet compromise and irreversible fund theft.
The skill states that all CLI requests include source: "payall-cli" for backend analytics tracking, but this tracking is not surfaced as a clear warning to users in the main operational guidance. In a financial tool handling cards and wallets, undisclosed telemetry can undermine privacy expectations and create compliance concerns.
The skill normalizes non-interactive top-up flows using --yes to skip confirmation and labels them as suitable for agents. Even though the command itself returns only a deposit address, the surrounding workflow encourages autonomous movement of funds without a final human verification step, which is risky in financial operations.
Non-interactive flags (use all three to skip all prompts):
- `--amount <amount>` / `-a` — USDT amount
- `--chain <chain>` / `-c` — Deposit network: `tron`, `bsc`, `eth`
- `--yes` / `-y` — Skip confirmation
The command returns a deposit address. Send USDT to that address and the card balance updates automatically after confirmation.
The withdrawal flow supports --yes to skip confirmation while using a saved wallet key to authorize payouts from a card balance to crypto. In a financial context, removing confirmation from outbound value transfers materially increases the risk of mistaken or unauthorized withdrawals.
- `--amount <amount>` / `-a` — USDT amount (must be > 2)
- `--chain <chain>` / `-c` — Payout network: `tron`, `bsc`, `eth`
- `--address <address>` — Destination wallet (defaults to user's own wallet)
- `--yes` / `-y` — Skip confirmation
- `--json` — JSON output (for agents)
The command requires a saved wallet key (uses it to sign the withdrawal confirmation). Network fees: $1.50 for TRON, $1.00 for BSC/ETH.
The wallet send command allows direct on-chain USDT transfers with --yes to skip confirmation, enabling fully autonomous asset movement. Because blockchain transfers are typically irreversible, an incorrect address, amount, or malicious invocation could immediately cause permanent loss of funds.
- `--to <address>` — `0x...` (40 hex chars) for EVM, `T...` (34 chars, Base58) for TRON
- `--amount <amount>` — USDT amount
- `--chain <chain>` — `bsc`, `eth`, or `tron`
- `-y, --yes` — Skip confirmation
TRON transfers require TRX for energy/bandwidth fees. The CLI checks for non-zero TRX balance before sending and sets a 15 TRX fee limit. If a send fails, the CLI prints manual transfer instructions.
No suspicious patterns detected.