T09 · Insecure Skill Coding Practices
- Location
references/register-secret.md:17- Finding
Sensitive Wallet Recovery Material Is Exposed Through Console Logging
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is purpose-aligned for Circle developer-controlled wallets, but its examples include unsafe handling for sensitive wallet recovery material and value-moving requests.
Review carefully before installing or relying on these snippets in production. The skill is not deceptive, but it handles custody credentials and can move funds; remove recovery-file logging, add idempotency keys to all mutating calls, require human approval for every transfer, and narrow activation to explicit Circle developer-controlled wallet requests.
references/register-secret.md:17Sensitive Wallet Recovery Material Is Exposed Through Console Logging
references/check-balance-and-transfer-tokens.md:23Mutating Wallet and Transfer Examples Omit Required Idempotency Keys
The trigger list is broad enough to match generic wallet-related requests such as 'create wallet' or 'check balance,' which may cause this high-privilege custody skill to activate when a less-privileged or different wallet flow was intended. In context, that increases the chance of routing users into developer-controlled custody actions unnecessarily, which can lead to inappropriate handling of sensitive wallet operations.
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.
- ALWAYS store recovery files outside the repository root. NEVER commit them to version control.
- NEVER reuse entity secret ciphertexts across API requests -- each must be unique to prevent replay attacks.
- NEVER register an entity secret on behalf of the user -- they must generate, register, and store it themselves.
- ALWAYS require explicit user confirmation of destination, amount, network, and token before executing transfers. NEVER auto-execute fund movements on mainnet.
- ALWAYS warn when targeting mainnet or exceeding safety thresholds (e.g., >100 USDC).
- ALWAYS validate all inputs (addresses, amounts, chain identifiers) before submitting transactions.
- ALWAYS warn before interacting with unaudited or unknown contracts.
The file provides ready-to-run instructions for creating outbound token transfers from developer-controlled wallets but does not include an explicit user warning, confirmation step, or guardrail around initiating value-moving transactions. In the context of a custody wallet skill, this increases the risk that an agent or integrator triggers irreversible transfers without clear operator awareness, recipient validation, or human approval.
No suspicious patterns detected.