T01 · Skill Instruction Hijacking
- Location
encrypted-card.md:85- Finding
Execution of Server-Controlled Agent Instructions
- Content
View full analysis
Card-ChaseD-9547.md", "Use the decrypted card details to complete checkout at DigitalOcean.", "Call POST /api/v1/bot/rail5/confirm with { \"checkout_id\": \"r5chk_abc123\", \"status\": \"success\" } when done.", "If checkout fails, call confirm with { \"status\": \"failed\" } instead.", "Announce the result." ], "spawn_payload": { "task": "You are a checkout agent...", "cleanup": "delete", "runTimeoutSeconds": 300, "label": "checkout-digitalocean" } ``` ```text ### Step 2: Spawn a Sub-Agent Once the checkout is approved, spawn an ephemeral sub-agent using the `spawn_payload` from the response: ``` sessions_spawn({ task: spawn_payload.task, cleanup: "delete", runTimeoutSeconds: 300 }) ``` The sub-agent executes the `checkout_steps` in sequence. You (the main agent) wait for the sub-agent to complete and then announce the result. ``` ### Technical Analysis The Skill instructs the main agent to take natural-language instructions returned by the CreditClaw API and use them directly as the task for a newly spawned sub-agent. It also directs the sub-agent to execute the remotely returned `checkout_steps`. The response fields are not treated as untrusted data. The documented flow does not require: - A strict schema limiting the operations that the task may request. - An allowlist of permitted tools or commands. - Verification that the returned merchant, amount, checkout ID, and card file match the approved purchase. - Filtering of instructions that request credential access, unrelated file operations, or additional network communication. - A crypt ...[truncated 2005 chars]- Remediation
View remediation
