Trust Assessment
erc-8004 received a trust score of 10/100, placing it in the Untrusted category. This skill has significant security findings that require attention before use in production.
SkillShield's automated analysis identified 14 findings: 10 critical, 3 high, 1 medium, and 0 low severity. Key findings include Arbitrary command execution, Remote code execution: curl/wget pipe to shell, Sensitive path access: AI agent config.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The LLM Behavioral Safety layer scored lowest at 0/100, indicating areas for improvement.
Last analyzed on February 13, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings14
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Arbitrary command execution Remote code download piped to interpreter Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/sp0oby/erc-8004/SKILL.md:93 | |
| CRITICAL | Arbitrary command execution Remote code download piped to interpreter Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/sp0oby/erc-8004/scripts/common.sh:18 | |
| CRITICAL | Remote code execution: curl/wget pipe to shell Detected a pattern that downloads and immediately executes remote code. This is a primary malware delivery vector. Never pipe curl/wget output directly to a shell interpreter. | Static | skills/sp0oby/erc-8004/SKILL.md:93 | |
| CRITICAL | Remote code execution: curl/wget pipe to shell Detected a pattern that downloads and immediately executes remote code. This is a primary malware delivery vector. Never pipe curl/wget output directly to a shell interpreter. | Static | skills/sp0oby/erc-8004/scripts/common.sh:18 | |
| CRITICAL | Unsanitized User Input in Shell Commands (Command Injection) The shell scripts directly embed user-provided command-line arguments into `cast send` and `cast call` commands without proper sanitization. This allows an attacker to inject arbitrary shell commands by crafting malicious input for arguments like AGENT_ID, SCORE, URI, TAG1, TAG2, ENDPOINT, and FEEDBACK_URI. For example, providing `'; rm -rf /;'` as an argument could lead to arbitrary code execution on the host system. Sanitize all user-provided inputs before embedding them into shell commands. Use `printf %q` or similar methods to properly quote arguments, or pass arguments as separate elements to `exec` to avoid shell interpretation. Alternatively, use a more robust scripting language that offers safer ways to execute external processes. | LLM | scripts/feedback.sh:96 | |
| CRITICAL | Unsanitized User Input in Shell Commands (Command Injection) The shell scripts directly embed user-provided command-line arguments into `cast send` and `cast call` commands without proper sanitization. This allows an attacker to inject arbitrary shell commands by crafting malicious input for arguments like AGENT_ID, SCORE, URI, TAG1, TAG2, ENDPOINT, and FEEDBACK_URI. For example, providing `'; rm -rf /;'` as an argument could lead to arbitrary code execution on the host system. Sanitize all user-provided inputs before embedding them into shell commands. Use `printf %q` or similar methods to properly quote arguments, or pass arguments as separate elements to `exec` to avoid shell interpretation. Alternatively, use a more robust scripting language that offers safer ways to execute external processes. | LLM | scripts/register.sh:63 | |
| CRITICAL | Unsanitized User Input in Shell Commands (Command Injection) The shell scripts directly embed user-provided command-line arguments into `cast send` and `cast call` commands without proper sanitization. This allows an attacker to inject arbitrary shell commands by crafting malicious input for arguments like AGENT_ID, SCORE, URI, TAG1, TAG2, ENDPOINT, and FEEDBACK_URI. For example, providing `'; rm -rf /;'` as an argument could lead to arbitrary code execution on the host system. Sanitize all user-provided inputs before embedding them into shell commands. Use `printf %q` or similar methods to properly quote arguments, or pass arguments as separate elements to `exec` to avoid shell interpretation. Alternatively, use a more robust scripting language that offers safer ways to execute external processes. | LLM | scripts/set-uri.sh:67 | |
| CRITICAL | Private Key Exposed via Command-Line Arguments The scripts allow passing the `PRIVATE_KEY` directly as a command-line argument (`-k` or `--key`). Command-line arguments are often visible in process lists (`ps aux`) and stored in shell history files, making the private key easily discoverable by other users on the system or by an attacker who gains access to the system. This is a critical credential exposure risk. Never pass sensitive credentials like private keys as command-line arguments. Instead, rely solely on environment variables (e.g., `PRIVATE_KEY`) or secure secret management systems. If an environment variable is used, ensure it is unset after use and that the script's execution environment is secured. | LLM | scripts/feedback.sh:50 | |
| CRITICAL | Private Key Exposed via Command-Line Arguments The scripts allow passing the `PRIVATE_KEY` directly as a command-line argument (`-k` or `--key`). Command-line arguments are often visible in process lists (`ps aux`) and stored in shell history files, making the private key easily discoverable by other users on the system or by an attacker who gains access to the system. This is a critical credential exposure risk. Never pass sensitive credentials like private keys as command-line arguments. Instead, rely solely on environment variables (e.g., `PRIVATE_KEY`) or secure secret management systems. If an environment variable is used, ensure it is unset after use and that the script's execution environment is secured. | LLM | scripts/register.sh:30 | |
| CRITICAL | Private Key Exposed via Command-Line Arguments The scripts allow passing the `PRIVATE_KEY` directly as a command-line argument (`-k` or `--key`). Command-line arguments are often visible in process lists (`ps aux`) and stored in shell history files, making the private key easily discoverable by other users on the system or by an attacker who gains access to the system. This is a critical credential exposure risk. Never pass sensitive credentials like private keys as command-line arguments. Instead, rely solely on environment variables (e.g., `PRIVATE_KEY`) or secure secret management systems. If an environment variable is used, ensure it is unset after use and that the script's execution environment is secured. | LLM | scripts/set-uri.sh:30 | |
| HIGH | Sensitive path access: AI agent config Access to AI agent config path detected: '~/.clawdbot/'. This may indicate credential theft. Verify that access to this sensitive path is justified and declared. | Static | skills/sp0oby/erc-8004/SKILL.md:95 | |
| HIGH | Sensitive Credentials Loaded from File/Environment and Used Directly The `common.sh` script loads the `PRIVATE_KEY` from a file (`~/.clawdbot/wallets/.deployer_pk`) or environment variable and the `PINATA_JWT` from an environment variable. These sensitive credentials are then directly embedded into shell commands (`cast send`, `curl`). While using environment variables is generally preferred over command-line arguments, the direct use in shell commands still poses a risk if the command itself logs arguments or if the execution environment is compromised, potentially leading to credential exfiltration. For private keys, consider using `cast wallet import` with a password or a hardware wallet integration instead of directly exposing the raw private key. For API keys like `PINATA_JWT`, ensure that the environment where these scripts run is highly secured and that credentials are not logged. Implement strict access controls for files containing secrets. Consider using a dedicated secret management solution. | LLM | scripts/common.sh:35 | |
| HIGH | Sensitive Credentials Loaded from File/Environment and Used Directly The `common.sh` script loads the `PRIVATE_KEY` from a file (`~/.clawdbot/wallets/.deployer_pk`) or environment variable and the `PINATA_JWT` from an environment variable. These sensitive credentials are then directly embedded into shell commands (`cast send`, `curl`). While using environment variables is generally preferred over command-line arguments, the direct use in shell commands still poses a risk if the command itself logs arguments or if the execution environment is compromised, potentially leading to credential exfiltration. For private keys, consider using `cast wallet import` with a password or a hardware wallet integration instead of directly exposing the raw private key. For API keys like `PINATA_JWT`, ensure that the environment where these scripts run is highly secured and that credentials are not logged. Implement strict access controls for files containing secrets. Consider using a dedicated secret management solution. | LLM | scripts/common.sh:79 | |
| MEDIUM | Sensitive environment variable access: $HOME Access to sensitive environment variable '$HOME' detected in shell context. Verify this environment variable access is necessary and the value is not exfiltrated. | Static | skills/sp0oby/erc-8004/scripts/common.sh:38 |
Scan History
Embed Code
[](https://skillshield.io/report/51f68032bf0dbba3)
Powered by SkillShield