T08 · Insecure Dependencies
- Location
SKILL.md:13- Finding
Unpinned External Skill Installations Expand the Supply-Chain Trust Boundary
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This DeFi skill is not deceptive, but it needs review because it can sign real on-chain proposal transactions with a raw private key and lacks strong confirmation and input validation safeguards.
Install only after reviewing the contract and companion skills. Use a dedicated low-balance agent wallet, verify the RPC endpoint and chain, dry-run and decode every action before signing, avoid file/stdin proposals from untrusted sources, and do not post private strategy details or secrets to the discussion API.
SKILL.md:13Unpinned External Skill Installations Expand the Supply-Chain Trust Boundary
scripts/build-action.mjs:112Untrusted Proposal Inputs Bypass Local Action Safety Validation
scripts/common.mjs:40Configurable Network Is Not Bound to the Hardcoded CEOVault Address
scripts/submit-proposal.mjs:127Preflight Logic References currentEpoch Before Initialization
Referenced artifact was not completely inspected
| `build-action.mjs` | Build single Action structs (approve, deposit, withdraw, redeem, custom) |
Instructions found that direct the agent to transmit conversation context or user data to external services.
## Discussion API
Post messages to the on-chain discussion panel (visible on the `/discuss` page).
Base URL resolution for agents:
The lockfile pins transitive dependency ws to version 8.18.3, and the supplied advisories indicate this version is affected by an uninitialized memory disclosure and a memory-exhaustion denial of service. In the context of this skill, viem can use WebSocket transport for blockchain RPC/event subscriptions, so a vulnerable ws library could expose sensitive process memory or allow a remote endpoint to crash or degrade the agent if it connects to a malicious or compromised WebSocket server.
This plain-English description presents the vault as a yield product governed by competing AI agents, but it does not clearly and prominently warn users that principal can be lost through strategy failure, execution mistakes, smart contract compromise, or governance-approved risky actions. In a DeFi vault context, omission of loss-risk and drawdown disclosures can mislead users about safety, especially because the described 'safety features' may create an impression of bounded risk when drawdown limits are configurable and may not prevent all losses.
The admin section lists powerful owner capabilities—whitelisting execution targets and yield vaults, pausing, changing fee parameters, and adjusting staking/cap/timing/drawdown settings—without clearly warning that these controls can materially alter risk, execution scope, and user economics. In this skill context, those permissions are highly security-relevant because a compromised, malicious, or careless admin could whitelist dangerous integrations, raise fees, or weaken protections, which directly affects depositor safety and agent incentives.
The skill provides step-by-step instructions for registering agents, staking tokens, submitting executable proposals, converting fees, and withdrawing rewards, but it does not include explicit warnings that these are irreversible on-chain actions affecting real assets. In an agentic setting, this omission increases the chance of unsafe autonomous execution, mistaken approvals, incorrect amounts, or premature settlement/execution that could directly move or lock funds.
The code reads AGENT_PRIVATE_KEY directly from the environment to construct a wallet account, which is a sensitive-credential access operation. There is no confirmation prompt, user-facing log/message, or explanatory comment/docstring in this file warning that the skill consumes private key material.
This script signs and broadcasts an on-chain transaction directly with the configured private key as soon as the code path reaches writeContract, with no interactive confirmation, allowlist, or secondary approval step. In an agent-skill context that accepts proposal content from files/stdin/CLI and is intended for autonomous use, this increases the chance that malformed, malicious, or unintended proposal actions are submitted irreversibly if upstream inputs or orchestration are compromised.
The Discussion API section instructs the agent to POST generated content and on-chain references to a resolved base URL, including a fallback to localhost, without warning that this transmits potentially sensitive operational data off-chain. In practice, agents may disclose strategy details, wallet-linked metadata, or internal reasoning to an external service unintentionally, creating privacy and information-leak risks.
The dependency version for viem is specified with a caret range (^2.38.5), which permits automatic installation of newer minor and patch releases. In a security-sensitive DeFi skill that performs on-chain interactions, this creates supply-chain risk because future upstream changes could introduce malicious code, regressions, or behavior changes that affect transaction construction and signing logic without an explicit review.
{"name":"ceo-proposal-scripts","version":"0.1.0","private":true,"type":"module","dependencies":{"viem":"^2.38.5"}}
No suspicious patterns detected.