T09 · Insecure Skill Coding Practices
- Location
SKILL.md:932- Finding
Automated Rerouting Creates Financial Escrow Without Enforced Compliance or Spending Controls
- Content
View full analysis
dict: """ Execute a full supply chain reroute: 1. Create escrow with alternate supplier 2. Notify downstream agents of delay 3. Update supplier graph """ results = {"steps": []} # Step 1: Create escrow with the alternate supplier escrow = execute("create_escrow", { "payer_id": orchestrator_id, "payee_id": alternate["agent_id"], "amount": str(original_order["value_usd"]), "currency": "USD", "conditions": { "delivery_by": original_order["due_date"], "quantity": original_order["quantity"], "quality_standard": "per_original_sla", "auto_release_on_confirmation": True } }) ``` ### Technical Analysis The automated rerouting function performs a financial operation immediately after receiving an order and selected alternate supplier. It does not enforce the controls that the guide describes elsewhere, including: - A compliance check before escrow creation - A maximum transaction or aggregate spending limit - Human approval for high-value transactions - An idempotency key preventing duplicate escrow creation - A cooldown or rerouting-depth check - Verification that the alternate supplier is still authorized - Validation of the order amount, currency, due date, or supplier identity - Binding the escrow request to an approved rerouting decision The surrounding pipeline at `SKILL.md:1028-1096` calls `execute_reroute` for every affected order after alternate selection. While exceptions are recorded, no rollback is performed if later workflow steps fail. Consequently, an escrow can remain created even if notifications ...[truncated 1690 chars]- Remediation
View remediation
