T03 · Remote Payload Retrieval and Execution
- Location
DEPENDENCIES.md:17- Finding
Mutable Remote Installation Script Executed with Root Privileges
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill appears to perform its stated ENS management purpose, but it asks agents to handle wallet secrets and execute irreversible mainnet transactions with under-scoped safeguards.
Review before installing. Use a dedicated low-value wallet, avoid command-line passwords or raw private keys, run read-only dry runs first, verify every mainnet transaction manually, and do not run the documented curl-to-sudo installer without independent verification. This is not malicious from the inspected artifacts, but it is high-risk for wallet operations as written.
DEPENDENCIES.md:17Mutable Remote Installation Script Executed with Root Privileges
scripts/create-subdomain.js:43Wallet Passwords and Private Keys Exposed Through Command-Line Arguments
scripts/register-ens-name.js:77Custom Keystore Uses Unauthenticated AES-CBC Encryption
scripts/package.json:1Wallet-Handling Dependencies Are Mutable and Not Locked Reproducibly
Piping curl output directly into sudo is a high-risk command-chaining pattern because it executes remote content as root without inspection. In the context of a developer skill, users may copy-paste this blindly, making the documentation itself a vehicle for unsafe privileged execution.
**Install if needed:**
- macOS: `brew install node`
- Ubuntu: `curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt-get install -y nodejs`
- Windows: Download from https://nodejs.org
---
Piping curl output directly into sudo is a high-risk command-chaining pattern because it executes remote content as root without inspection. In the context of a developer skill, users may copy-paste this blindly, making the documentation itself a vehicle for unsafe privileged execution.
**Install if needed:**
- macOS: `brew install node`
- Ubuntu: `curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt-get install -y nodejs`
- Windows: Download from https://nodejs.org
---
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
**Not published:**
- node_modules/ (gitignored)
- .env files (gitignored)
- Local testing files
---
Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.
clawdhub install YOUR-USERNAME/ens-manager
**Update skill README:**
Add install instructions at top:
```markdown
The guide recommends supplying wallet passwords and even raw private keys directly on the command line, which can leak through shell history, process listings, CI logs, telemetry, or agent traces. In an autonomous-agent setting this is especially dangerous because secrets may be persisted or echoed by tooling outside the author's control, enabling wallet compromise and theft of all accessible assets.
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).
# ENS Manager
> Complete ENS workflow - register names, create subdomains, publish IPFS content in minutes
## The Problem
Managing ENS names requires multiple tools: app.ens.domains for registration, manual contract calls for subdomains, IPFS pinning services for content, and separate gateways for publishing. Each step takes time and technical knowledge.
## This Skill
Automates the complete ENS workflow from registration to published website - one command per operation, proper three-phase registration, automatic wrapped/unwrapped handling.
---
## 📋 Requirements
- Node.js 18+
- viem ^1.20.0
- content-hash ^2.5.2
- Ethereum wallet keystore
- ETH for gas + registration fees
---
## ⚡ What It Does
### Register New .eth Names
- **Check availa
Broad capability claims combined with instructions to use local wallet/keystore material and send on-chain transactions create a trust and expectation gap. Even if some features are missing, the dangerous part is that the skill normalizes providing sensitive credentials and signing blockchain actions without a tightly scoped, accurate declaration of what will happen.
Broad capability claims combined with instructions to use local wallet/keystore material and send on-chain transactions create a trust and expectation gap. Even if some features are missing, the dangerous part is that the skill normalizes providing sensitive credentials and signing blockchain actions without a tightly scoped, accurate declaration of what will happen.
Broad capability claims combined with instructions to use local wallet/keystore material and send on-chain transactions create a trust and expectation gap. Even if some features are missing, the dangerous part is that the skill normalizes providing sensitive credentials and signing blockchain actions without a tightly scoped, accurate declaration of what will happen.
Broad capability claims combined with instructions to use local wallet/keystore material and send on-chain transactions create a trust and expectation gap. Even if some features are missing, the dangerous part is that the skill normalizes providing sensitive credentials and signing blockchain actions without a tightly scoped, accurate declaration of what will happen.
Referenced artifact was not completely inspected
node scripts/create-subdomain-ipfs.js yourname.eth subdomain QmIPFS123... \
Referenced artifact was not completely inspected
node scripts/create-subdomain-ipfs.js yourname.eth subdomain QmIPFS123... \
Referenced artifact was not completely inspected
node scripts/create-subdomain-ipfs.js yourname.eth subdomain QmIPFS123... \
The script decrypts a keystore to obtain a private key, but then creates a wallet client without binding that key as the signing account. As a result, transactions may be sent from whatever account the runtime/provider exposes, causing users to believe they are using the keystore account while actually spending funds from a different wallet or failing unpredictably.
The specific use of sudo -E preserves environment variables while executing as root, increasing risk because untrusted or unintended environment state can influence privileged execution. Combined with a fetched script, this creates a particularly unsafe installation pattern in documentation.
**Install if needed:**
- macOS: `brew install node`
- Ubuntu: `curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt-get install -y nodejs`
- Windows: Download from https://nodejs.org
---
The specific use of sudo -E preserves environment variables while executing as root, increasing risk because untrusted or unintended environment state can influence privileged execution. Combined with a fetched script, this creates a particularly unsafe installation pattern in documentation.
**Install if needed:**
- macOS: `brew install node`
- Ubuntu: `curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt-get install -y nodejs`
- Windows: Download from https://nodejs.org
---
The documentation tells users to run sudo chown -R $USER ~/.npm to fix permissions, which performs a recursive ownership change with elevated privileges but does not explain the system-impact risks or safer alternatives. Recursive privileged ownership changes can unintentionally alter security-sensitive files, normalize unsafe troubleshooting practices, and mask an underlying permissions misconfiguration.
This command requires sudo to recursively change ownership of the npm directory. While intended as troubleshooting, it can damage local security boundaries or fix the wrong problem if a user runs it blindly, especially because it modifies filesystem ownership under elevated privileges.
# Fix npm permissions
sudo chown -R $USER ~/.npm
npm install
The instructions direct the user to run gh repo create --public --source=. --push and later clawdhub publish . without an explicit warning that these commands upload the current local repository contents to public remote services. In a skill workspace, users may incorrectly assume only selected files are published, increasing the risk of unintentionally exposing sensitive code, configs, notes, or other repository contents.
The troubleshooting section includes gh repo delete ens-manager --yes as a ready-to-run command without clearly warning that deletion is destructive and may permanently remove the remote repository and its contents. Users following troubleshooting steps under time pressure could delete the wrong repository or lose work unnecessarily.
The GitHub publishing instructions explicitly use gh repo create ens-manager --public without warning the user that all repository contents will become publicly accessible. In a skill that may contain operational scripts, wallet-related workflows, environment hints, or internal documentation, this increases the risk of accidental disclosure if users follow the commands verbatim.
The quick-start opens with 'For autonomous agent operations' and 'Copy-paste ready commands' while immediately presenting live ENS registration and subdomain creation workflows that incur real cost and produce irreversible on-chain effects. In an agent skill context, that framing materially increases the chance an agent or operator will execute mainnet transactions without explicit confirmation, budget checks, or rollback awareness.
The debugging section says testing on Sepolia is not supported and advises using small subdomains on mainnet for testing, normalizing experimentation with real funds and real ENS state. That guidance is risky because users or agents may treat testing as harmless and trigger unintended paid transactions or irreversible changes during validation and debugging.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
---
### Create Subdomain with Website
**Time: 1-2 minutes**
The skill describes handling wallet keystores, passwords, and on-chain transactions but does not declare any explicit tool scope or permission boundaries. That omission makes the sensitive capability opaque to users and host systems, increasing the risk of unintended access to environment-backed secrets or unsafe execution with wallet material.