Trust Assessment
nomad received a trust score of 12/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 3 findings: 3 critical, 0 high, 0 medium, and 0 low severity. Key findings include Network egress to untrusted endpoints, Potential Command Injection via unsanitized user input in `nomad` CLI calls.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Manifest Analysis layer scored lowest at 40/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 Findings3
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Network egress to untrusted endpoints HTTP request to raw IP address Review all outbound network calls. Remove connections to webhook collectors, paste sites, and raw IP addresses. Legitimate API calls should use well-known service domains. | Manifest | skills/danfedick/nomad/SKILL.md:9 | |
| CRITICAL | Network egress to untrusted endpoints HTTP request to raw IP address Review all outbound network calls. Remove connections to webhook collectors, paste sites, and raw IP addresses. Legitimate API calls should use well-known service domains. | Manifest | skills/danfedick/nomad/SKILL.md:172 | |
| CRITICAL | Potential Command Injection via unsanitized user input in `nomad` CLI calls The skill's documentation demonstrates numerous examples of executing `nomad` CLI commands where user-provided arguments (e.g., `<job-id>`, `<alloc-id>`, `<path>`, `<service-name>`, or `-filter` expressions) are directly interpolated into shell commands. If the underlying LLM or skill implementation constructs these commands by directly inserting user input without proper sanitization or shell escaping, an attacker could inject arbitrary shell commands. This is particularly evident in examples like `nomad job status <job-id>` and the more complex `nomad alloc logs $(nomad job allocs -json <job-id> | jq -r '.[0].ID')`, which involves nested command execution and piping, significantly increasing the attack surface. Successful exploitation could lead to arbitrary code execution on the host system, potentially accessing or exfiltrating sensitive data, including environment variables like `NOMAD_TOKEN`. All user-provided arguments used in shell commands must be rigorously sanitized and escaped to prevent command injection. When executing external commands, it is strongly recommended to use a method that passes arguments as a list (e.g., `subprocess.run(['nomad', 'job', 'status', job_id])` in Python) rather than constructing a single shell string. If `shell=True` is absolutely necessary, ensure all user-controlled parts of the command string are meticulously escaped for the target shell. | LLM | SKILL.md:90 |
Scan History
Embed Code
[](https://skillshield.io/report/d55ca9e8a841c2bd)
Powered by SkillShield