Trust Assessment
sota-tracker-mcp 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 32 findings: 7 critical, 7 high, 16 medium, and 1 low severity. Key findings include Persistence / self-modification instructions, Arbitrary command execution, File read + network send exfiltration.
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 14, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings32
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Persistence / self-modification instructions Crontab manipulation (list/remove/edit) Remove any persistence mechanisms. Skills should not modify system startup configurations, crontabs, LaunchAgents, systemd services, or shell profiles. | Manifest | skills/romancircus/sota-tracker-mcp/SKILL.md:206 | |
| CRITICAL | Persistence / self-modification instructions systemd service persistence Remove any persistence mechanisms. Skills should not modify system startup configurations, crontabs, LaunchAgents, systemd services, or shell profiles. | Manifest | skills/romancircus/sota-tracker-mcp/SKILL.md:48 | |
| CRITICAL | Persistence / self-modification instructions systemd service persistence Remove any persistence mechanisms. Skills should not modify system startup configurations, crontabs, LaunchAgents, systemd services, or shell profiles. | Manifest | skills/romancircus/sota-tracker-mcp/SKILL.md:213 | |
| CRITICAL | Persistence / self-modification instructions systemd service persistence Remove any persistence mechanisms. Skills should not modify system startup configurations, crontabs, LaunchAgents, systemd services, or shell profiles. | Manifest | skills/romancircus/sota-tracker-mcp/SKILL.md:224 | |
| CRITICAL | Persistence / self-modification instructions systemd service persistence Remove any persistence mechanisms. Skills should not modify system startup configurations, crontabs, LaunchAgents, systemd services, or shell profiles. | Manifest | skills/romancircus/sota-tracker-mcp/SKILL.md:234 | |
| 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/romancircus/sota-tracker-mcp/update_agents_md.py:90 | |
| CRITICAL | File read + network send exfiltration AI agent config/credential file access Remove access to sensitive files not required by the skill's stated purpose. SSH keys, cloud credentials, and browser data should never be read by skills unless explicitly part of their declared functionality. | Manifest | skills/romancircus/sota-tracker-mcp/SKILL.md:54 | |
| HIGH | Potential data exfiltration: file read + network send Function 'scrape' reads files and sends data over the network. This may indicate data exfiltration. Review this function to ensure file contents are not being sent to external servers. | Static | skills/romancircus/sota-tracker-mcp/scrapers/civitai.py:116 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'update_agents_md'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/romancircus/sota-tracker-mcp/update_agents_md.py:90 | |
| HIGH | Sensitive path access: AI agent config Access to AI agent config path detected: '~/.claude/'. This may indicate credential theft. Verify that access to this sensitive path is justified and declared. | Static | skills/romancircus/sota-tracker-mcp/SKILL.md:54 | |
| HIGH | Persistence mechanism: systemd service Detected systemd service pattern. Persistence mechanisms allow malware to survive system restarts. Review this persistence pattern. Skills should not modify system startup configuration. | Static | skills/romancircus/sota-tracker-mcp/SKILL.md:48 | |
| HIGH | Persistence mechanism: systemd service Detected systemd service pattern. Persistence mechanisms allow malware to survive system restarts. Review this persistence pattern. Skills should not modify system startup configuration. | Static | skills/romancircus/sota-tracker-mcp/SKILL.md:213 | |
| HIGH | Persistence mechanism: systemd service Detected systemd service pattern. Persistence mechanisms allow malware to survive system restarts. Review this persistence pattern. Skills should not modify system startup configuration. | Static | skills/romancircus/sota-tracker-mcp/SKILL.md:224 | |
| HIGH | Persistence mechanism: systemd service Detected systemd service pattern. Persistence mechanisms allow malware to survive system restarts. Review this persistence pattern. Skills should not modify system startup configuration. | Static | skills/romancircus/sota-tracker-mcp/SKILL.md:234 | |
| 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/romancircus/sota-tracker-mcp/rest_api.py:5 | |
| MEDIUM | Missing required field: name The 'name' field is required for claude_code skills but is missing from frontmatter. Add a 'name' field to the SKILL.md frontmatter. | Static | skills/romancircus/sota-tracker-mcp/SKILL.md:1 | |
| MEDIUM | Suspicious import: urllib.request Import of 'urllib.request' detected. This module provides network or low-level system access. Verify this import is necessary. Network and system modules in skill code may indicate data exfiltration. | Static | skills/romancircus/sota-tracker-mcp/fetchers/artificial_analysis.py:16 | |
| MEDIUM | Suspicious import: urllib.request Import of 'urllib.request' detected. This module provides network or low-level system access. Verify this import is necessary. Network and system modules in skill code may indicate data exfiltration. | Static | skills/romancircus/sota-tracker-mcp/fetchers/huggingface.py:14 | |
| MEDIUM | Suspicious import: urllib.request Import of 'urllib.request' detected. This module provides network or low-level system access. Verify this import is necessary. Network and system modules in skill code may indicate data exfiltration. | Static | skills/romancircus/sota-tracker-mcp/fetchers/lmarena.py:12 | |
| MEDIUM | Suspicious import: urllib.request Import of 'urllib.request' detected. This module provides network or low-level system access. Verify this import is necessary. Network and system modules in skill code may indicate data exfiltration. | Static | skills/romancircus/sota-tracker-mcp/scrapers/civitai.py:18 | |
| MEDIUM | Suspicious import: socket Import of 'socket' detected. This module provides network or low-level system access. Verify this import is necessary. Network and system modules in skill code may indicate data exfiltration. | Static | skills/romancircus/sota-tracker-mcp/utils/hardware.py:5 | |
| MEDIUM | Unpinned Python dependency version Dependency 'fastmcp>=2.0,<3.0' is not pinned to an exact version. Pin Python dependencies with exact versions where feasible. | Dependencies | skills/romancircus/sota-tracker-mcp/pyproject.toml | |
| MEDIUM | Unpinned Python dependency version Requirement 'fastmcp>=2.0,<3.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/romancircus/sota-tracker-mcp/requirements.txt:1 | |
| MEDIUM | Unpinned Python dependency version Requirement 'aiohttp>=3.9' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/romancircus/sota-tracker-mcp/requirements.txt:2 | |
| MEDIUM | Unpinned Python dependency version Requirement 'huggingface_hub>=0.20' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/romancircus/sota-tracker-mcp/requirements.txt:3 | |
| MEDIUM | Unpinned Python dependency version Requirement 'python-dotenv>=1.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/romancircus/sota-tracker-mcp/requirements.txt:4 | |
| MEDIUM | Unpinned Python dependency version Requirement 'playwright>=1.40' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/romancircus/sota-tracker-mcp/requirements.txt:5 | |
| MEDIUM | Unpinned Python dependency version Requirement 'fastapi>=0.100.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/romancircus/sota-tracker-mcp/requirements.txt:6 | |
| MEDIUM | Unpinned Python dependency version Requirement 'uvicorn>=0.23.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/romancircus/sota-tracker-mcp/requirements.txt:7 | |
| MEDIUM | Unpinned Python dependency version Requirement 'slowapi>=0.1.9' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/romancircus/sota-tracker-mcp/requirements.txt:8 | |
| LOW | Node lockfile missing package.json is present but no lockfile was found (package-lock.json, pnpm-lock.yaml, or yarn.lock). Commit a lockfile for deterministic dependency resolution. | Dependencies | skills/romancircus/sota-tracker-mcp/package.json | |
| INFO | Broad CORS Policy The REST API is configured with `allow_origins=["*"]`, permitting requests from any origin. While common for public, read-only APIs, this broad setting removes the Same-Origin Policy protection, which could be a concern if the API were to handle sensitive user data or write operations in the future. For a public data API, the direct risk is low, but it's a general security best practice to restrict origins to only those necessary. If possible, restrict `allow_origins` to a specific list of trusted domains instead of `["*"]`. For a public API, this might not be feasible or necessary, but it's a good practice to be aware of. | LLM | rest_api.py:48 |
Scan History
Embed Code
[](https://skillshield.io/report/ce3dc95dd24ac69f)
Powered by SkillShield