Back to skill

Security audit

Lista Lending

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent for Lista lending, but it has a serious command-injection flaw in transaction execution and underprotected wallet-session metadata.

Review before installing. Only use trusted RPC endpoints, avoid enabling debug logs with wallet topics, and do not run state-changing lending operations until the executor is changed to avoid shell interpretation, such as using execFileSync or spawnSync with argument arrays.

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 (2)

T09 · Insecure Skill Coding Practices

Error
Location
src/executor.ts:21
Finding

Shell Command Injection in Wallet Transaction Execution

Content
View full analysis
0n) { args.push("--value", params.value.toString()); } try { const cmd = `node "${WALLET_CONNECT_CLI}" ${args.map((a) => `"${a}"`).join(" ")}`; const result = execSync(cmd, { encoding: "utf-8", timeout: 5 * 60 * 1000, env: { ...process.env, WALLETCONNECT_PROJECT_ID: process.env.WALLETCONNECT_PROJECT_ID, }, }); ``` ### Technical Analysis The executor builds a single command string and passes it to `execSync()`. String-based `execSync()` execution invokes a command shell. Arguments are surrounded with double quotes, but embedded quotation marks, command substitutions, and other shell metacharacters are not escaped. The WalletConnect topic can originate from the `--wallet-topic` command-line option or persisted wallet-session data. It is checked only for presence and is not constrained to an expected topic format. SDK-provided transaction fields are also interpolated into the same command string. Double-quote wrapping does not provide a safe process boundary. A malicious value containing a closing quote and shell syntax can escape the intended argument and cause the shell to interpret additional commands. ### Attack Path 1. An attacker causes a crafted WalletConnect topic to enter the application through `--wallet-topic`, persisted lending context, or wallet-session data. 2. The user or Agent invokes a state-changing lending operation such as deposit, withdraw, supply, borrow, or repay. 3. The operation reaches `executeStep()` with the attacker-controlled topic. 4. `executeStep()` i ...[truncated 1262 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
src/context.ts:173
Finding

Plaintext Persistence and Debug Logging of WalletConnect Session Topics

Content
View full analysis
lista-wallet-connect). process.env.SKILL_DEBUG_LOG_FILE = filePath; const flushStdout = patchWriteStream("stdout", process.stdout, filePath, skill); const flushStderr = patchWriteStream("stderr", process.stderr, filePath, skill); const flushAll = (): void => { flushStdout(); flushStderr(); }; process.on("befo ...[truncated 2814 chars]
Remediation
View remediation
Vulnerability Patterns
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (105)

Tp4

High
Category
MCP Tool Poisoning
Confidence
88% confidence
Finding

The actual risk here is not description mismatch but that the skill persists custom RPC URLs in a local config file and allows them to influence blockchain interactions. In a financial skill, unsafe or malicious RPC endpoints can mislead reads, censor transactions, or degrade trust in simulations and transaction preparation, increasing user risk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The actual risk here is not description mismatch but that the skill persists custom RPC URLs in a local config file and allows them to influence blockchain interactions. In a financial skill, unsafe or malicious RPC endpoints can mislead reads, censor transactions, or degrade trust in simulations and transaction preparation, increasing user risk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The actual risk here is not description mismatch but that the skill persists custom RPC URLs in a local config file and allows them to influence blockchain interactions. In a financial skill, unsafe or malicious RPC endpoints can mislead reads, censor transactions, or degrade trust in simulations and transaction preparation, increasing user risk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The actual risk here is not description mismatch but that the skill persists custom RPC URLs in a local config file and allows them to influence blockchain interactions. In a financial skill, unsafe or malicious RPC endpoints can mislead reads, censor transactions, or degrade trust in simulations and transaction preparation, increasing user risk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The actual risk here is not description mismatch but that the skill persists custom RPC URLs in a local config file and allows them to influence blockchain interactions. In a financial skill, unsafe or malicious RPC endpoints can mislead reads, censor transactions, or degrade trust in simulations and transaction preparation, increasing user risk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The actual risk here is not description mismatch but that the skill persists custom RPC URLs in a local config file and allows them to influence blockchain interactions. In a financial skill, unsafe or malicious RPC endpoints can mislead reads, censor transactions, or degrade trust in simulations and transaction preparation, increasing user risk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The actual risk here is not description mismatch but that the skill persists custom RPC URLs in a local config file and allows them to influence blockchain interactions. In a financial skill, unsafe or malicious RPC endpoints can mislead reads, censor transactions, or degrade trust in simulations and transaction preparation, increasing user risk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The actual risk here is not description mismatch but that the skill persists custom RPC URLs in a local config file and allows them to influence blockchain interactions. In a financial skill, unsafe or malicious RPC endpoints can mislead reads, censor transactions, or degrade trust in simulations and transaction preparation, increasing user risk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The actual risk here is not description mismatch but that the skill persists custom RPC URLs in a local config file and allows them to influence blockchain interactions. In a financial skill, unsafe or malicious RPC endpoints can mislead reads, censor transactions, or degrade trust in simulations and transaction preparation, increasing user risk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The actual risk here is not description mismatch but that the skill persists custom RPC URLs in a local config file and allows them to influence blockchain interactions. In a financial skill, unsafe or malicious RPC endpoints can mislead reads, censor transactions, or degrade trust in simulations and transaction preparation, increasing user risk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The actual risk here is not description mismatch but that the skill persists custom RPC URLs in a local config file and allows them to influence blockchain interactions. In a financial skill, unsafe or malicious RPC endpoints can mislead reads, censor transactions, or degrade trust in simulations and transaction preparation, increasing user risk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The actual risk here is not description mismatch but that the skill persists custom RPC URLs in a local config file and allows them to influence blockchain interactions. In a financial skill, unsafe or malicious RPC endpoints can mislead reads, censor transactions, or degrade trust in simulations and transaction preparation, increasing user risk.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The actual risk here is not description mismatch but that the skill persists custom RPC URLs in a local config file and allows them to influence blockchain interactions. In a financial skill, unsafe or malicious RPC endpoints can mislead reads, censor transactions, or degrade trust in simulations and transaction preparation, increasing user risk.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **Agent quick check:** `node dist/cli/cli.bundle.mjs version`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **Agent quick check:** `node dist/cli/cli.bundle.mjs version`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **Agent quick check:** `node dist/cli/cli.bundle.mjs version`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **Agent quick check:** `node dist/cli/cli.bundle.mjs version`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **Agent quick check:** `node dist/cli/cli.bundle.mjs version`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **Agent quick check:** `node dist/cli/cli.bundle.mjs version`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **Agent quick check:** `node dist/cli/cli.bundle.mjs version`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **Agent quick check:** `node dist/cli/cli.bundle.mjs version`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **Agent quick check:** `node dist/cli/cli.bundle.mjs version`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **Agent quick check:** `node dist/cli/cli.bundle.mjs version`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **Agent quick check:** `node dist/cli/cli.bundle.mjs version`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **Agent quick check:** `node dist/cli/cli.bundle.mjs version`