Trust Assessment
clawbrain 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 20 findings: 8 critical, 7 high, 4 medium, and 1 low severity. Key findings include Arbitrary command execution, Unsafe deserialization / dynamic eval, Dangerous call: __import__().
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Manifest Analysis 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 Findings20
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) 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/clawcolab/clawbrain/tests/integration_test.py:289 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) 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/clawcolab/clawbrain/tests/test_openclaw_container.py:176 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) 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/clawcolab/clawbrain/tests/test_openclaw_container.py:198 | |
| CRITICAL | Arbitrary command execution Node.js synchronous shell execution 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/clawcolab/clawbrain/brain/hooks/clawbrain-startup/handler.js:15 | |
| CRITICAL | Arbitrary command execution Node.js synchronous shell execution 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/clawcolab/clawbrain/hooks/clawbrain-startup/handler.js:15 | |
| 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/clawcolab/clawbrain/skill.json:21 | |
| 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/clawcolab/clawbrain/remote-install.sh:3 | |
| 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/clawcolab/clawbrain/remote-install.sh:3 | |
| HIGH | Unsafe deserialization / dynamic eval Decryption followed by code execution Remove obfuscated code execution patterns. Legitimate code does not need base64-encoded payloads executed via eval, encrypted-then-executed blobs, or dynamic attribute resolution to call system functions. | Manifest | skills/clawcolab/clawbrain/tests/integration_test.py:134 | |
| HIGH | Unsafe deserialization / dynamic eval Python builtins/import manipulation Remove obfuscated code execution patterns. Legitimate code does not need base64-encoded payloads executed via eval, encrypted-then-executed blobs, or dynamic attribute resolution to call system functions. | Manifest | skills/clawcolab/clawbrain/clawbrain_cli.py:529 | |
| HIGH | Dangerous call: __import__() Call to '__import__()' detected in function 'cmd_info'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/clawcolab/clawbrain/clawbrain_cli.py:529 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'test_cli_available'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/clawcolab/clawbrain/tests/integration_test.py:289 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'test_cli'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/clawcolab/clawbrain/tests/test_openclaw_container.py:176 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'test_hook_syntax'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/clawcolab/clawbrain/tests/test_openclaw_container.py:198 | |
| HIGH | Skill declares and uses 'startup_hooks' permission for arbitrary code execution The skill's manifest (`skill.json`) explicitly declares the `startup_hooks` permission and states that it installs JavaScript hooks to the host system's hook directory (`~/.openclaw/hooks` or `~/.clawdbot/hooks`). These hooks are triggered on `gateway:startup` and `command:new` events. While the skill claims the hooks are auditable JavaScript and do not execute remote code, the ability to install and execute arbitrary code at system startup or on specific commands represents a significant security risk. An attacker could potentially modify these hooks or leverage this capability to execute malicious code if the skill's installation process is compromised or the skill itself is malicious. 1. **Strictly limit hook capabilities**: Ensure the installed hooks perform only the absolute minimum necessary actions and are sandboxed if possible. 2. **Runtime verification**: Implement mechanisms to verify the integrity and content of installed hooks before execution. 3. **User consent and review**: Ensure explicit user consent and clear warnings are provided before installing such powerful hooks, and strongly encourage users to review the hook code. 4. **Alternative mechanisms**: Explore less privileged ways to achieve the desired functionality if possible, or consider if the startup hook is truly essential for core functionality. | LLM | skill.json:58 | |
| 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/clawcolab/clawbrain/install.sh:15 | |
| 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/clawcolab/clawbrain/remote-install.sh:34 | |
| 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/clawcolab/clawbrain/tests/test_openclaw_integration.sh:38 | |
| MEDIUM | Unpinned Python dependency version Dependency 'cryptography>=41.0.0' is not pinned to an exact version. Pin Python dependencies with exact versions where feasible. | Dependencies | skills/clawcolab/clawbrain/pyproject.toml | |
| LOW | Unpinned optional Python dependencies in skill.json The `skill.json` lists optional Python dependencies (`psycopg2-binary`, `redis`, `cryptography`, `sentence-transformers`) without specifying exact version numbers. This means that during installation (`pip install clawbrain[all]`), the latest available versions of these packages will be installed. This practice can introduce supply chain risks, as a new version of a dependency might contain vulnerabilities, breaking changes, or even malicious code. For security-sensitive applications, pinning dependencies to exact versions is a recommended best practice to ensure reproducibility and mitigate risks from upstream changes. Pin all direct and transitive dependencies to exact versions using a `requirements.txt` or similar mechanism, or specify version ranges in `skill.json` (e.g., `"package_name": "==1.2.3"` or `"~=1.2"`) to ensure consistent and secure installations. | LLM | skill.json:50 |
Scan History
Embed Code
[](https://skillshield.io/report/b001755615d1eb8e)
Powered by SkillShield