Back to skill

Security audit

Arsenal — Sumplus DeFi Execution Layer

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed DeFi integration, but it can route users into high-impact blockchain transactions from remote-generated payloads without enough validation safeguards.

Install only if you trust Arsenal/Sumplus for DeFi execution and are prepared to manually verify every transaction in your wallet. Do not sign opaque transactions based only on the skill's description or quote; check recipients, approvals, token amounts, chain, contract addresses, and any persistent allowances. Treat API key creation as an explicit account-management action, not something an agent should do silently.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:69
Finding
Unvalidated Remote Blockchain Transactions May Cause Unauthorized Asset Transfers<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 69–97 **Vulnerability Type**: Trusting remotely generated transaction payloads without independent validation **Risk Level**: High ### Vulnerable Code ```markdown ### EVM transaction (`build_swap_tx`) ```json { "transactions": [ { "to": "0x...", "data": "0x...", "value": "0x0", "description": "Approve WETH" }, { "to": "0x...", "data": "0x...", "value": "0x0", "description": "Swap WETH → USDC" } ], "amount_out_estimated": "243.52", "amount_out_minimum": "241.1" } ``` **Execute `transactions` in order.** Each tx must confirm before sending the next. ### Sui transaction (`build_swap_tx`) ```json { "tx_bytes": "<base64 PTB>", "instructions": ["Pass tx_bytes to any Sui wallet to sign and submit."] } ``` Pass `tx_bytes` to Privy `send_sui_transaction` or the user's Sui wallet. ### Solana transaction (`build_swap_tx`) ```json { "transaction": "<base64 VersionedTransaction>", "amount_in": "0.1", "amount_out": "14.83" } ``` Pass `transaction` to the user's Solana wallet or Privy `sendTransaction`. ``` ### Technical Analysis The skill instructs the agent to execute or forward opaque transaction payloads generated by the remote Arsenal service. For EVM transactions, it requires transactions to be executed in order but does not require decoding or validating the destination address, chain ID, function selector, calldata arguments, native-token value, token approval amount, or recipient. For Sui and Solana, serialized transaction bytes are passed directly to a wallet or signing service without requiring inspection of their instructions or expected state changes. The descriptions, estimated output, and transaction payloads all originate from the same remote response. Consequently, a human-readable description such as `Approve WETH` does not prove that the associated calldata performs only that operation. Confirmation of an earlier quote also does not establish that a subse ...[truncated 2190 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. **Decode every transaction before signing** - Decode EVM function selectors and calldata arguments. - Decode every Sui programmable transaction block command. - Decode all Solana instructions, account roles, program IDs, and address lookup tables. - Reject payloads that cannot be fully decoded. 2. **Enforce explicit allowlists** - Allowlist supported chain IDs, router addresses, token contracts, Sui packages, Solana program IDs, and permitted function selectors. - Reject proxy, delegate-call, or arbitrary execution routes unless they are specifically required and independently verified. 3. **Verify transaction intent** - Compare input and output tokens, amounts, recipients, slippage, minimum output, chain, and sender with the user-confirmed quote. - Ensure the transaction does not contain extra transfers, approvals, signers, writable accounts, or contract calls. - Verify native-token `value` independently rather than trusting the remote response. 4. **Constrain token approvals** - Prefer exact-amount approvals. - Reject unlimited approvals unless the user explicitly requests and separately confirms them. - Confirm that the approved spender is the expected, allowlisted protocol contract. - Recommend revocation after use when a persistent approval is unavoidable. 5. **Simulate before submission** - Simulate transactions using an independent RPC provider. - Calculate expected balance and allowance changes. - Reject transactions whose simulation differs from the confirmed operation or produces unexplained state changes. 6. **Require final informed consent** - Display independently decoded recipients, contracts, amounts, approvals, fees, and expected balance changes. - Obtain explicit user confirmation for the final decoded transaction, not only for the preliminary quote. - Validate and confirm every transaction in a multi-transaction sequence independently. 7. **Fail ...[truncated 271 chars]
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (5)

Vague Triggers

Medium
Confidence
93% confidence
Finding
The manifest description says to use the skill for 'any blockchain operation,' which is too expansive for safe routing. Because the skill can prepare transactions across many chains and protocols, broad matching materially increases the risk of accidental activation in sensitive financial contexts.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The instruction to use Arsenal for 'anything blockchain-related' is overly broad and can cause the agent to invoke the skill on loosely related prompts without sufficient scoping. In a high-risk domain like DeFi, over-triggering increases the chance of unnecessary data disclosure, unintended transaction preparation, or execution pathways being reached too easily.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
Arsenal is Sumplus's on-chain execution platform. When the user asks for anything blockchain-related — swaps, lending, balances, liquidity positions — call Arsenal.

**Base URL:** `https://arsenal.sumplus.xyz`
**Auth:** `Authorization: Bearer {ARSENAL_API_KEY}` (inject from env, never ask the user)

---
Confidence
80% confidence
Finding
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.

Description-Behavior Mismatch

Medium
Confidence
94% confidence
Finding
The skill claims to be for DeFi and blockchain operations, but it also documents account signup and API key creation endpoints. That expands the capability beyond the declared purpose and could let an agent create new service accounts or provision credentials without a clear user request or authorization boundary.

Context-Inappropriate Capability

Medium
Confidence
96% confidence
Finding
Including flows to register Arsenal accounts and mint API keys is a privileged identity-management capability that is unrelated to ordinary quote/transaction building. In an agent context, this can be abused to create shadow accounts, generate fresh secrets, and bypass intended administrative controls.

Static analysis

No suspicious patterns detected.