T09 · Insecure Skill Coding Practices
- Location
scripts/generate_validator_key.py:53- Finding
Validator Private Keys Are Disclosed Through Standard Output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill matches its node-management purpose, but it gives unsafe validator-key handling examples that could accidentally expose high-value secrets.
Review this skill before installing. Use it only in an isolated environment, avoid pasting validator private keys into commands or agent chats, do not run the key generator where stdout is logged, pin and review upstream code before building, and back up configuration before wipe/reset commands.
scripts/generate_validator_key.py:53Validator Private Keys Are Disclosed Through Standard Output
SKILL.md:46Validator Private Keys Are Passed Through Command-Line Arguments
SKILL.md:21Unpinned Mutable Dependencies Are Downloaded and Executed
The skill contains clear network-oriented operational commands and RPC usage, but it does not declare any tool scope or permission boundaries. In an agent setting, this increases the chance that an agent may perform network actions without explicit guardrails or user awareness, especially because the skill is designed to connect to remote seed nodes and interact with blockchain services.
The validator-node example instructs users to pass a validator private key directly on the command line without warning about shell history, process inspection, logging, or insecure storage risks. Exposure of a validator key can allow an attacker to impersonate the validator, sign malicious actions, or permanently compromise node identity and funds tied to that key.
The key-generation example prints the newly generated validator private key directly to the terminal and provides no warning about protecting or securely storing it. Terminal output may be captured in scrollback, logs, recordings, or remote session transcripts, making accidental disclosure of a highly sensitive validator secret much more likely.
The documented reset commands include wipe operations that erase node data, but the skill does not place an explicit warning immediately around those commands. In an operational blockchain context, a user or agent could run them during troubleshooting and unintentionally destroy local state, causing downtime, forced resync, or loss of unrecoverable local artifacts if backups are missing.
The script emits the validator private key directly to stdout, which can expose it through terminal scrollback, shell logging, CI/CD logs, remote session recording, or operational copy/paste mistakes. In the context of blockchain validator management, disclosure of this key can allow an attacker to impersonate the validator or compromise node identity and network participation.
The SDK example includes a live transaction-sending call without warning that it changes blockchain state and may spend real assets when pointed at a funded wallet or production node. In this node-management skill, readers may reasonably test snippets against localhost/mainnet infrastructure, so the lack of a caution increases the risk of unintended transactions.
No suspicious patterns detected.