T08 · Insecure Dependencies
- Location
SKILL.md:51- Finding
Unpinned Wallet-Capable Dependency Enables Supply-Chain and Unauthorized Payment Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 51–84
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code
markdown Teneo Protocol connects you to specialized AI agents via WebSocket. Payments are handled automatically in USDC. ### Supported Networks | Network | Chain ID | USDC Contract | |---------|----------|---------------| | Base | `eip155:8453` | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | | Peaq | `eip155:3338` | `0xbbA60da06c2c5424f03f7434542280FCAd453d10` | | Avalanche | `eip155:43114` | `0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E` | ### Prerequisites - Node.js 18+ - An Ethereum wallet for signing transactions - USDC on Base, Peaq, or Avalanche for payments ### Installation ```bash npm install @teneo-protocol/sdk dotenvQuick Start
See the Teneo Agent SDK for full setup instructions including wallet configuration.
typescript import { TeneoSDK } from "@teneo-protocol/sdk"; const sdk = new TeneoSDK({ wsUrl: "wss://backend.developer.chatroom.teneo-protocol.ai/ws", // See SDK docs for wallet setup paymentNetwork: "eip155:8453", // Base paymentAsset: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", // USDC on Base });Technical Analysis
The installation command does not pin
@teneo-protocol/sdkto a reviewed version and the project contains no lockfile, integrity hash, vendored source, or local implementation that would allow the installed code to be verified against the audited artifact. Package resolution can therefore select a later package release and its transitive dependencies.The unresolved dependency is security-sensitive because the documented workflow gives it access to wallet-signing functionality, connects it to an external WebSocket endpoint, and states that USDC payments are handled automatically. These capabilities exceed ...[truncated 2464 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
@teneo-protocol/sdkto an exact reviewed version rather than allowing npm to select the latest compatible release. - Commit a lockfile and use reproducible installation such as
npm ci; verify package integrity and review all transitive dependencies. - Include or vendor the security-relevant SDK source in the auditable artifact, or publish a verifiable reference to the exact source commit and package digest.
- Require explicit, human-readable confirmation for every transaction. Display the network, token contract, recipient, exact amount, allowance changes, fees, and transaction calldata before signing.
- Do not enable automatic payments by default. Enforce configurable per-transaction, daily, and cumulative spending limits.
- Use a dedicated wallet with a minimal balance and no unrelated assets or broad token allowances. Never use a primary wallet.
- Document precisely how private keys are loaded, which data is transmitted over the WebSocket, how payment requests are authenticated, and whether any credentials or transaction metadata are retained.
- Authenticate and validate all server-originated payment requests locally. Do not rely solely on the remote service to determine transaction destinations or amounts.
- Run the SDK with least operating-system privilege and restrict filesystem, environment-variable, and network access where feasible.
- Provide a direct, payment-free CoinMarketCap API integration when the requested task only requires public market data.
- Pin
