T09 · Insecure Skill Coding Practices
- Location
register.sh:29- Finding
Generated Controller Private Key Is Exposed in Standard Output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is for agent identity registration and mostly matches that purpose, but it handles wallet credentials and public identity registration in ways users should review carefully.
Install only if you are comfortable registering an agent identity through Cortex Protocol and Base. Provide your own securely managed controller address, avoid the wallet-generation path that prints a private key, use a non-sensitive explicit agent name instead of a host-derived default, and inspect the registration payload before sending it.
register.sh:29Generated Controller Private Key Is Exposed in Standard Output
register.sh:21Unpinned Global Installation of a Wallet-Handling Dependency Is Recommended
register.sh:45Unescaped User Input Is Interpolated into the Registration JSON Payload
The skill includes shell commands that perform network actions and wallet-related operations, but it does not declare any tool scope or allowed-tools metadata. In an agent ecosystem, this weakens reviewability and can cause users or orchestrators to permit broader execution than intended, increasing the chance of unintended command execution and data egress.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Register your agent with a single API call:
curl -X POST https://cortexprotocol.co/api/register \
-H "Content-Type: application/json" \
-d '{
"name": "YourAgentName",
The skill instructs users to generate a wallet and print the private key directly to stdout with no warning or secure handling guidance. Private keys shown in terminals, logs, transcripts, agent output, or telemetry can be copied by other processes or retained in history, leading to permanent compromise of the wallet and any assets or identity tied to it.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# Check your agent exists
curl -s "https://mainnet.base.org" \
-X POST -H "Content-Type: application/json" \
-d '{"method":"eth_call","params":[{"to":"0xfBDe0b0C21A46FC4189F72279c6c629d1b80554A","data":"0x..."},"latest"],"id":1,"jsonrpc":"2.0"}'
The script transmits user-supplied agent metadata and the controller address to an external service without any validation, trust verification, or clear disclosure beyond the API URL. In this skill’s context, that is security-relevant because it causes on-chain identity registration through a third-party endpoint and may expose sensitive operational metadata or bind an identity to an unintended controller if inputs are manipulated.
echo " Controller: $CONTROLLER"
echo ""
RESPONSE=$(curl -s -X POST "$API" \
-H "Content-Type: application/json" \
-d "{
\"name\": \"$NAME\",
The registration script sends host-derived identity data, including a hostname-based name and controller address, to a third-party API without warning about disclosure or consent. This can leak infrastructure naming conventions and link an agent or environment to a public on-chain identity, creating unnecessary privacy and attribution risks.
No suspicious patterns detected.