Back to skill

Security audit

binance-agentic-wallet

Security checks for vulnerabilities and agentic risk

Overview

This is a broad Binance wallet-control skill with real financial authority, but its active instructions are disclosed, user-directed, and include confirmation and preview guardrails.

Install only if you intend to let this skill operate a Binance Agentic Wallet through the baw CLI. Review every transfer, trade, payment, DeFi action, approval change, and external signature preview carefully before confirming, and do not enable Developer Mode unless you understand the exact contract call or message being signed.

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

Warning
Location
references/campaign.md:115
Finding

Insecure Persistence and Plaintext Disclosure of a Bearer Job Token

Content
View full analysis

Vulnerability Details

File Location: references/campaign.md, lines 115–118
Vulnerability Type: Plaintext sensitive-data storage and disclosure
Risk Level: Medium

Vulnerable Code Snippet

markdown
**Before submitting — confirm you can persist the credentials.** `jobId` + `jobToken` is the only credential that retrieves the report: there is no "list my jobs by address" endpoint, so a lost credential is unrecoverable and unappealable, and since every call is paid, the payment is lost with it. Confirm you have somewhere durable to write them (cross-turn task state, **not** a transient shell variable) **before** calling `POST /x402/analyze/async` — the moment the signed request is replayed the payment is made and cannot be undone.

**Mandatory steps after submission:**
1. **Write `jobId` and `jobToken` to that durable state immediately, before the first poll.** If the write fails anyway, do not quietly continue: the job is already paid for and cannot be un-submitted, so **show the user both values in plaintext right away** and ask them to keep them, so the report stays retrievable by hand.

Technical Analysis

The instructions correctly recognize jobToken as a credential required to retrieve a paid analysis report. However, they require it to be written to an unspecified durable, cross-turn state without mandating encryption, access controls, retention limits, or secure deletion.

The fallback behavior explicitly requires displaying both jobId and jobToken in plaintext. This places the bearer credential in the conversation transcript, where it may be retained in logs, synchronization systems, analytics pipelines, or user-visible history.

This behavior also conflicts with the root credential policy in SKILL.md:143, which states:

markdown
- **Credential protection**: Never log, display, or ask for session tokens, clientId, API keys, private keys, seed phrases, or passwords. Redact sensitive fields from CLI output.

A b ...[truncated 1852 chars]

Remediation
View remediation

Remediation Suggestions

  1. Classify jobToken explicitly as a sensitive bearer credential under the root credential-protection policy.
  2. Store it only in an encrypted secret store or runtime credential vault with access limited to the current Skill and job.
  3. Keep only a non-sensitive opaque lookup handle in ordinary cross-turn task state.
  4. Never write the token to general memory, logs, telemetry, temporary files, command history, or conversation transcripts.
  5. Remove the instruction to display the full token in plaintext when persistence fails.
  6. If secure persistence is unavailable, stop before submitting the paid request and inform the user that the runtime cannot securely retain the retrieval credential.
  7. If a post-payment storage failure occurs, offer a secure export channel designed for secrets rather than chat output. If no secure channel exists, clearly report the failure without exposing the token to additional systems.
  8. Apply explicit expiration and deletion controls so the credential is erased immediately after report retrieval, job failure, or server-side expiry.
  9. Redact jobToken, payment signature headers, presigned download URLs, and equivalent bearer values from all command output and error reports.
  10. Document the minimum scope and lifetime expected for jobToken, and support server-side revocation or rotation where available.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (84)

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · SKILL.md (reported line 133)May include surrounding context.

md
5. **Never claim "transaction failed" based on a stale read.** A `txHash` is only proof that the tx was **submitted** — it does NOT prove it succeeded on-chain. Backend position queries also lag behind the chain, so a stale read is not evidence of failure either. If verification queries still show no change, the answer is "syncing — check the block explorer for the tx's on-chain status", not "it failed".

## Display Rules (apply to ALL `defi` commands)

When summarizing or rendering any field below to the user, format to **exactly 2 decimal places** (round half-up). Do not drop trailing zeros, do not switch to scientific notation, do not omit the unit.

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · references/defi.md (reported line 26)May include surrounding context.

md
5. **Never claim "transaction failed" based on a stale read.** A `txHash` is only proof that the tx was **submitted** — it does NOT prove it succeeded on-chain. Backend position queries also lag behind the chain, so a stale read is not evidence of failure either. If verification queries still show no change, the answer is "syncing — check the block explorer for the tx's on-chain status", not "it failed".

## Display Rules (apply to ALL `defi` commands)

When summarizing or rendering any field below to the user, format to **exactly 2 decimal places** (round half-up). Do not drop trailing zeros, do not switch to scientific notation, do not omit the unit.

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · references/defi.md (reported line 364)May include surrounding context.

md
5. **Never claim "transaction failed" based on a stale read.** A `txHash` is only proof that the tx was **submitted** — it does NOT prove it succeeded on-chain. Backend position queries also lag behind the chain, so a stale read is not evidence of failure either. If verification queries still show no change, the answer is "syncing — check the block explorer for the tx's on-chain status", not "it failed".

## Display Rules (apply to ALL `defi` commands)

When summarizing or rendering any field below to the user, format to **exactly 2 decimal places** (round half-up). Do not drop trailing zeros, do not switch to scientific notation, do not omit the unit.

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · references/defi.md (reported line 370)May include surrounding context.

md
5. **Never claim "transaction failed" based on a stale read.** A `txHash` is only proof that the tx was **submitted** — it does NOT prove it succeeded on-chain. Backend position queries also lag behind the chain, so a stale read is not evidence of failure either. If verification queries still show no change, the answer is "syncing — check the block explorer for the tx's on-chain status", not "it failed".

## Display Rules (apply to ALL `defi` commands)

When summarizing or rendering any field below to the user, format to **exactly 2 decimal places** (round half-up). Do not drop trailing zeros, do not switch to scientific notation, do not omit the unit.

Instruction Override

High
Category
Prompt Injection
Confidence
86% confidence
Finding

The skill instructs the agent to tell the user to enable Developer Mode when it is disabled, which can weaken wallet safety controls and expand the set of dangerous signing and contract-call actions available to the agent. In the context of an on-chain wallet skill, nudging users to enable a privileged mode materially increases the chance of phishing-style approvals, malicious calldata signing, or unsafe external transaction execution even though the document also describes a preview/confirm flow.

Content

Scanner excerpt · references/external-sign.md (reported line 5)May include surrounding context.

md
Use Developer Mode to preview and execute user-built contract calls and message signatures. These commands are intentionally two-step: first preview and inspect the parsed operation and security result, then execute only after explicit user confirmation.

Developer Mode can only be enabled or configured in the Binance App. Use `baw wallet settings --json` to check whether Developer Mode is active before attempting external signing. If `devMode.enabled` is false, tell the user to enable Developer Mode in the Binance App instead of running preview.

---

Instruction Override

High
Category
Prompt Injection
Confidence
70% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

Scanner excerpt · references/wallet-setting.md (reported line 90)May include surrounding context.

md
- **defiQuotaDate** — the date these DeFi-quota figures apply to.
- **developerModeQuotaUsed** — how much Developer Mode quota has been consumed today. Use this top-level field when explaining Developer Mode usage; never use `defiQuotaUsed` for Developer Mode.
- **developerModeQuotaDate** — the date these Developer Mode quota figures apply to.
- **devMode.enabled** — whether Developer Mode is currently active for external signing. When `false`, do not run `contract-call preview` or `sign-message preview`; tell the user to enable Developer Mode in the Binance App.
- **devMode.expiresAt** — Developer Mode expiry time, as Unix seconds. This comes from backend settings and is `null` when Developer Mode is disabled or expired.
- **devMode.dailyLimit** — maximum Developer Mode external-sign value allowed in a 24-hour period.
- **devMode.balanceExceeded** — whether the wallet balance exceeds the configured Developer Mode daily limit.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill advertises activation for a very broad set of wallet and on-chain phrases, including generic terms like buy/sell, transfer, DeFi, staking, and signing operations. In a high-risk wallet skill, over-broad routing can cause the agent to invoke this capability in ambiguous contexts and steer users into sensitive transaction flows they did not clearly intend.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The activation phrases are broad enough that ordinary wallet or trading queries could accidentally trigger campaign-specific behavior, causing the agent to apply special rules, prompts, or external fetch logic when the user did not intend to enter the campaign flow. In a wallet skill, misrouting intent is security-relevant because it can change transaction guidance, token selection constraints, and payment-call handling around real financial operations.

Content

No source excerpt is available for this finding.

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 257)May include surrounding context.

md
### Field notes

| Field        | Meaning                                                                                                                                                                                                                   |
|--------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `investable` | Boolean. `true` → all operations allowed. `false` → product is delisted; agent MUST refuse new `deposit` / `lp-add` requests and tell the user the product is delisted; only redeem / lp-remove / claim remain available. |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 275)May include surrounding context.

md
### Parameters

| Parameter          | Required | Description                                                                                                                                                                                                                                                                                                                       |
|--------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--address`        | No       | Query by a specific address (defaults to user's wallet address)                                                                                                                                                                                                                                                                   |
| `--binanceChainId` | No       | Filter results by chain ID                                                                                                                                                                                                                                                                                                        |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 277)May include surrounding context.

md
| Parameter          | Required | Description                                                                                                                                                                                                                                                                                                                       |
|--------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--address`        | No       | Query by a specific address (defaults to user's wallet address)                                                                                                                                                                                                                                                                   |
| `--binanceChainId` | No       | Filter results by chain ID                                                                                                                                                                                                                                                                                                        |
| `--defiProtocolId` | No       | Filter by DeFi protocol ID (e.g., `protocol_abc`, `protocol_xyz`)                                                                                                                                                                                                                                                                 |
| `--refresh`        | No       | Force-refresh positions (skip cache; server rate-limited, refreshes should be spaced several minutes apart). **Do NOT pass this by default — only include it when the user expli
...[truncated 25 chars]

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 278)May include surrounding context.

md
| Parameter          | Required | Description                                                                                                                                                                                                                                                                                                                       |
|--------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--address`        | No       | Query by a specific address (defaults to user's wallet address)                                                                                                                                                                                                                                                                   |
| `--binanceChainId` | No       | Filter results by chain ID                                                                                                                                                                                                                                                                                                        |
| `--defiProtocolId` | No       | Filter by DeFi protocol ID (e.g., `protocol_abc`, `protocol_xyz`)                                                                                                                                                                                                                                                                 |
| `--refresh`        | No       | Force-refresh positions (skip cache; server rate-limited, refreshes should be spaced several minutes apart). **Do NOT pass this by default — only include it when the user expli
...[truncated 25 chars]

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 279)May include surrounding context.

md
|--------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--address`        | No       | Query by a specific address (defaults to user's wallet address)                                                                                                                                                                                                                                                                   |
| `--binanceChainId` | No       | Filter results by chain ID                                                                                                                                                                                                                                                                                                        |
| `--defiProtocolId` | No       | Filter by DeFi protocol ID (e.g., `protocol_abc`, `protocol_xyz`)                                                                                                                                                                                                                                                                 |
| `--refresh`        | No       | Force-refresh positions (skip cache; server rate-limited, refreshes should be spaced several minutes apart). **Do NOT pass this by default — only include it when the user explicitly asks to refresh / sync / reload / get the latest on-chain positions, OR per the [Post-trade verification](#post-trade-verification) flow.** |

### Example

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 323)May include surrounding context.

md
### Field Reference Guide

| Layer              | Key fields                               | What they mean                                                                                                          |
|--------------------|------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|
| Protocol           | `protocolId`                             | Chain + version unique (e.g., `bsc_protocol_abc`, `bsc_protocol_xyz`)                                                   |
| Protocol           | `defiProtocolId`                         | Cross-chain protocol group (e.g., `protocol_abc`, `protocol_xyz`)                                                       |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 331)May include surrounding context.

md
| Pool               | `poolTemplateCode`                       | Drives client rendering (e.g., `Concentrated_Liquidity_V3`, `Lending_Hub_Spoke`)                                        |
| PositionCollection | `positionCollectionDetail.healthRate`    | Lending account health factor (only present for `poolType=Lending`)                                                     |
| Position           | `assetType`                              | `null` for normal, `"locked"`, or `"farming"`                                                                           |
| Position           | `tokenList.supply` / `borrow` / `reward` | Tokens grouped by direction                                                                                             |
| Position           | `positionDetail.tickLower/tickUpper`     | LP V3/V4 price range as raw ticks (no auto-conversion)                                                                  |
| Position           | `positionDetail.unlockTime`              | Lock-end timestamp (seconds) for `Staked_Locked` pools                                                                  |
| Position           | `positionDetail.unlockTimeReached`       | Boolean; whether `unlockTime` has passed (computed server-side). Use it directly — do not re-compute from current time. |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 341)May include surrounding context.

md
Different user questions need different layers:

| User question                                   | Where to look                                                                                                                                                     |
|-------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| "What's my total DeFi value?"                   | `deFiTotalValue`                                                                                                                                                  |
| "Which protocols do I use?"                     | `deFiProtocolVOList[].protocolName` + `protocolTotalValue`                                                                                                        |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 343)May include surrounding context.

md
| User question                                   | Where to look                                                                                                                                                     |
|-------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| "What's my total DeFi value?"                   | `deFiTotalValue`                                                                                                                                                  |
| "Which protocols do I use?"                     | `deFiProtocolVOList[].protocolName` + `protocolTotalValue`                                                                                                        |
| "What's my lending health factor?"              | Find protocol with `poolType=Lending` → `positionCollectionDetail.healthRate`. Health < 1.5 = high risk.                                                          |
| "Show me my LP positions"                       | Filter pools by `poolType="Liquidity Pool"`. `positionDetail.nftId` is the NFT ID.                                                                                |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 346)May include surrounding context.

md
| "What's my total DeFi value?"                   | `deFiTotalValue`                                                                                                                                                  |
| "Which protocols do I use?"                     | `deFiProtocolVOList[].protocolName` + `protocolTotalValue`                                                                                                        |
| "What's my lending health factor?"              | Find protocol with `poolType=Lending` → `positionCollectionDetail.healthRate`. Health < 1.5 = high risk.                                                          |
| "Show me my LP positions"                       | Filter pools by `poolType="Liquidity Pool"`. `positionDetail.nftId` is the NFT ID.                                                                                |
| "Are any of my LPs out of range?"               | `positionDetail.active`. `false` means current price is outside `tickLower..tickUpper`.                                                                           |
| "What can I claim?"                             | `tokenList.reward[]` shows unclaimed rewards / fees                                                                                                               |
| "What am I borrowing?"                          | `tokenList.borrow[]` (only present for `Lending` positions)                                                                                                       |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 599)May include surrounding context.

md
| "What's my total DeFi value?"                   | `deFiTotalValue`                                                                                                                                                  |
| "Which protocols do I use?"                     | `deFiProtocolVOList[].protocolName` + `protocolTotalValue`                                                                                                        |
| "What's my lending health factor?"              | Find protocol with `poolType=Lending` → `positionCollectionDetail.healthRate`. Health < 1.5 = high risk.                                                          |
| "Show me my LP positions"                       | Filter pools by `poolType="Liquidity Pool"`. `positionDetail.nftId` is the NFT ID.                                                                                |
| "Are any of my LPs out of range?"               | `positionDetail.active`. `false` means current price is outside `tickLower..tickUpper`.                                                                           |
| "What can I claim?"                             | `tokenList.reward[]` shows unclaimed rewards / fees                                                                                                               |
| "What am I borrowing?"                          | `tokenList.borrow[]` (only present for `Lending` positions)                                                                                                       |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 349)May include surrounding context.

md
| "Show me my LP positions"                       | Filter pools by `poolType="Liquidity Pool"`. `positionDetail.nftId` is the NFT ID.                                                                                |
| "Are any of my LPs out of range?"               | `positionDetail.active`. `false` means current price is outside `tickLower..tickUpper`.                                                                           |
| "What can I claim?"                             | `tokenList.reward[]` shows unclaimed rewards / fees                                                                                                               |
| "What am I borrowing?"                          | `tokenList.borrow[]` (only present for `Lending` positions)                                                                                                       |
| "Is this protocol supported by Binance Wallet?" | See Derived insights → protocol support. Reuse prior `defi protocol-list` results from the conversation; if none, ask the user to run `defi protocol-list` first. |
| "Any redemptions in progress?"                  | See Derived insights → redemption in progress.                                                                                                                    |
| "Anything I can claim from redemptions?"        | See Derived insights → claimable redemption. Suggest `defi claim --claimType REDEMPTION ...`.                                                                     |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 351)May include surrounding context.

md
| "What can I claim?"                             | `tokenList.reward[]` shows unclaimed rewards / fees                                                                                                               |
| "What am I borrowing?"                          | `tokenList.borrow[]` (only present for `Lending` positions)                                                                                                       |
| "Is this protocol supported by Binance Wallet?" | See Derived insights → protocol support. Reuse prior `defi protocol-list` results from the conversation; if none, ask the user to run `defi protocol-list` first. |
| "Any redemptions in progress?"                  | See Derived insights → redemption in progress.                                                                                                                    |
| "Anything I can claim from redemptions?"        | See Derived insights → claimable redemption. Suggest `defi claim --claimType REDEMPTION ...`.                                                                     |

### Derived insights (compute at render time, not in the response)

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 358)May include surrounding context.

md
Some user-facing concepts are NOT returned directly by `defi position` — derive them by inspecting the response:

| Concept                              | How to derive                                                                                                                                                                                                                                                                                                                                                                                  |
|--------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Protocol supported by Binance Wallet | Reuse `defi protocol-list` results **already in the current conversation context** — a position's `defiProtocolId` ∈ those results → supported. **Do NOT auto-invoke `defi protocol-list` just to check this.** If the user has not run `defi protocol-list` in this session and explicitly asks "is this protocol supported", suggest they run `defi protocol-list` to get the supported set. |
| Redemption in progress               | `poolType="Staked"` AND `assetType="locked"` AND `positionDetail.unlockTime` is set AND `positionDetail.unlockTimeReached=false`. Show `unlockTime` so the user knows when funds will be claimable.                                                                                                                                                                                            |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 361)May include surrounding context.

md
| Concept                              | How to derive                                                                                                                                                                                                                                                                                                                                                                                  |
|--------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Protocol supported by Binance Wallet | Reuse `defi protocol-list` results **already in the current conversation context** — a position's `defiProtocolId` ∈ those results → supported. **Do NOT auto-invoke `defi protocol-list` just to check this.** If the user has not run `defi protocol-list` in this session and explicitly asks "is this protocol supported", suggest they run `defi protocol-list` to get the supported set. |
| Redemption in progress               | `poolType="Staked"` AND `assetType="locked"` AND `positionDetail.unlockTime` is set AND `positionDetail.unlockTimeReached=false`. Show `unlockTime` so the user knows when funds will be claimable.                                                                                                                                                                                            |
| Claimable redemption                 | `poolType="Staked"` AND `assetType="locked"` AND `positionDetail.unlockTime` is set AND `positionDetail.unlockTimeReached=true`. Tell user they can call `defi claim --claimType REDEMPTION ...`.                                                              
...[truncated 25 chars]

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 362)May include surrounding context.

md
|--------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Protocol supported by Binance Wallet | Reuse `defi protocol-list` results **already in the current conversation context** — a position's `defiProtocolId` ∈ those results → supported. **Do NOT auto-invoke `defi protocol-list` just to check this.** If the user has not run `defi protocol-list` in this session and explicitly asks "is this protocol supported", suggest they run `defi protocol-list` to get the supported set. |
| Redemption in progress               | `poolType="Staked"` AND `assetType="locked"` AND `positionDetail.unlockTime` is set AND `positionDetail.unlockTimeReached=false`. Show `unlockTime` so the user knows when funds will be claimable.                                                                                                                                                                                            |
| Claimable redemption                 | `poolType="Staked"` AND `assetType="locked"` AND `positionDetail.unlockTime` is set AND `positionDetail.unlockTimeReached=true`. Tell user they can call `defi claim --claimType REDEMPTION ...`.                                                                                                                                                                                              |

### Display Rules (position-specific)

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · references/defi.md (reported line 491)May include surrounding context.

md
### Field notes

| Field             | Meaning                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `redeemDelayDays` | Optional `List<String>`. When empty / absent, the redeem is one-shot — funds credit as soon as the tx confirms. When present and non-empty, the protocol requires a lock-up before funds are claimable. A single value or repeated values mean a fixed wait (e.g. a staking protocol `["7", "7"]` = funds mature 7 days after the redeem is submitted); two distinct values are a range (e.g. `["7", "15"]` = funds mature somewhere between 7 and 15 days after submission). Tell the user funds will be claimable after that delay, and they must call `defi claim --claimType REDEMPTION --redemptionId <id> ...` later to actually withdraw. |

Static analysis

No suspicious patterns detected.