Trust Assessment
polyclaw received a trust score of 36/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 6 findings: 1 critical, 1 high, 2 medium, and 2 low severity. Key findings include Arbitrary command execution, Unsafe deserialization / dynamic eval, Dangerous call: subprocess.run().
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Manifest Analysis layer scored lowest at 63/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 Findings6
| 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/akegaviar/polyclaw/scripts/polyclaw.py:38 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'run_script'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/akegaviar/polyclaw/scripts/polyclaw.py:38 | |
| MEDIUM | 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/akegaviar/polyclaw/lib/clob_client.py:4 | |
| MEDIUM | Unpinned Python dependency version Dependency 'web3>=7.0.0' is not pinned to an exact version. Pin Python dependencies with exact versions where feasible. | Dependencies | skills/akegaviar/polyclaw/pyproject.toml | |
| LOW | Private Key Stored in Environment Variable The skill requires the `POLYCLAW_PRIVATE_KEY` to be set as an environment variable. While explicitly warned about in the skill's documentation, storing private keys in environment variables is less secure than dedicated key management solutions (e.g., hardware wallets, encrypted vaults) and poses a risk if the environment is compromised or the key is accidentally exposed (e.g., in logs, shell history). The skill's documentation acknowledges this risk. For production or high-value use, consider integrating with a more secure key management system (e.g., AWS KMS, Google Cloud KMS, or a local encrypted keystore) rather than directly using environment variables. For development, ensure strict access controls on the environment where the key is stored. | LLM | SKILL.md:69 | |
| LOW | Unpinned or Loosely Pinned Dependencies The `pyproject.toml` file uses `>=` for dependency versions (e.g., `web3>=7.0.0`). While `uv sync` will create a lock file, the `pyproject.toml` itself does not strictly pin dependencies to exact versions. This can introduce supply chain risks if a new version of a dependency (even a minor or patch release) introduces a vulnerability or breaking change that is automatically pulled in during installation without a lock file being present or respected. Strictly pin all dependencies to exact versions (e.g., `web3==7.0.0`) or ensure that a lock file (e.g., `uv.lock`) is always used and committed to version control to guarantee reproducible builds and prevent unexpected dependency updates. | LLM | pyproject.toml:5 |
Scan History
Embed Code
[](https://skillshield.io/report/5e054d658b7a54e6)
Powered by SkillShield