T09 · Insecure Skill Coding Practices
- Location
SKILL.md:73- Finding
Unverified Signing of a Server-Controlled Solana Transaction
- Content
View full analysis
" }' ``` ### Technical Analysis The Skill instructs the agent to deserialize a base64-encoded Solana versioned transaction supplied by the remote `/api/mint` endpoint and sign it using the user's keypair. It does not require semantic validation of the transaction before signing. No checks are specified for: - Solana program IDs invoked by the transaction - Instruction types and instruction data - Recipient and destination accounts - SOL or SPL token transfer amounts - Signer and writable-account permissions - Mint, Candy Machine, collection, or backend signer addresses - Address lookup tables used by the versioned transaction - Additional instructions unrelated to the intended NFT mint - Transaction fees and the user's maximum expected cost - Authority delegation, approval, revocation, or account-closing operations Local signing protects the private key from direct disclosure, but it does not protect assets from malicious transactions authorized by that key. A malicious or compromised backend can return a transaction containing unintended instructions alongside, or instead of, the expected NFT mint operation. Once signed, the transaction carries valid authorization from the wallet. Submitting the signed transaction back to the service compounds the issue because the backend controls both transaction construction and the suggested submission channel. The documentation prov ...[truncated 2063 chars]- Remediation
View remediation
