T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:80- Finding
Unnecessary Private-Key Configuration for Read-Only Portfolio Analysis
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 80
Vulnerability Type: Excessive credential requirements and violation of least privilege
Risk Level: HighVulnerable Code Snippet:
markdown | Wallet not configured | "No wallet configured." | Set WALLET_TYPE + PRIVATE_KEY |Technical Analysis
The skill directs users to configure
WALLET_TYPEandPRIVATE_KEYwhen a wallet is unavailable. The declared functionality—discovering Uniswap positions, reading balances, and calculating portfolio performance—is read-only and can be performed using a public wallet address and public blockchain data.A private key grants transaction-signing authority and is therefore substantially more privileged than the public address required for portfolio reporting. Placing such a credential in an agent's environment may expose it to the delegated
portfolio-analyst, other tools or processes operating in that environment, diagnostic output, or insecure environment handling.The repository does not contain evidence that the key is directly read or exfiltrated. Nevertheless, the documented configuration creates an unnecessary credential-exposure path and expands the consequences of a compromised or incorrectly implemented delegated component.
Attack Path
- A user invokes the portfolio-report skill without a configured wallet.
- The skill returns the documented error and instructs the user to configure
WALLET_TYPEandPRIVATE_KEY. - The user places a transaction-signing private key in the agent or process environment.
- The delegated
portfolio-analyst, another component sharing the environment, or a subsequently compromised dependency obtains access to the credential. - The exposed private key can be used outside the reporting workflow to sign transactions for the associated account.
Impact Assessment
Successful access to the private key would provide transaction-signing authority over ...[truncated 526 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the instruction to configure
PRIVATE_KEYfor portfolio reporting. - Accept only a public wallet address for all read-only balance, position, fee, PnL, and impermanent-loss calculations.
- Replace the suggested action with wording such as:
Provide a public wallet address or configure a read-only wallet address. - If an authenticated RPC service is required, use a narrowly scoped provider API credential rather than a wallet-signing key.
- Explicitly prohibit private keys, seed phrases, and signing credentials in the skill documentation and delegated-agent parameters.
- Ensure the delegated agent receives only the public address and necessary chain filters.
- Add input validation that rejects values resembling private keys or seed phrases to reduce accidental disclosure.
- Remove the instruction to configure
