Trust Assessment
campaign-orchestrator received a trust score of 74/100, placing it in the Caution category. This skill has some security considerations that users should review before deployment.
SkillShield's automated analysis identified 2 findings: 0 critical, 2 high, 0 medium, and 0 low severity. Key findings include Sensitive Credential Requirement (GOG_KEYRING_PASSWORD), Potential Command Injection via External Tool Calls.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. All layers scored 70 or above, reflecting consistent security practices.
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 Findings2
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| HIGH | Sensitive Credential Requirement (GOG_KEYRING_PASSWORD) The skill explicitly requires `GOG_KEYRING_PASSWORD` as an environment variable for Gmail access. This credential is highly sensitive, potentially serving as a master password for a keyring, and its direct exposure via an environment variable poses a significant risk. If the environment where the skill runs is compromised, this credential could be exfiltrated, granting broad access to the user's Google services. This practice increases the attack surface for credential harvesting. Avoid requiring raw passwords as environment variables. Prefer OAuth tokens, service accounts, or dedicated application-specific passwords with limited scope. If a keyring is necessary, ensure it's securely managed and the master password is not directly exposed to the skill's runtime environment. | LLM | SKILL.md:24 | |
| HIGH | Potential Command Injection via External Tool Calls The skill's documentation (`SKILL.md` in the 'Integration Points' section) and a `TODO` comment in `webhook_handler.py` indicate that the skill executes external commands (`dialpad/send_sms.py`, `gog-shapescale`, `attio note`). These commands are likely constructed using user-controlled input (e.g., message content from webhooks, lead names, email subjects/bodies). If these commands are executed via `subprocess.run(..., shell=True)` or `os.system()` without proper sanitization of the interpolated user input, an attacker could inject arbitrary shell commands. For example, a malicious message like `'; rm -rf /'` could lead to severe system compromise. When executing external commands with user-controlled input, always use `subprocess.run()` with `shell=False` and pass arguments as a list. Ensure all user-provided strings are properly escaped or validated before being included in command arguments. Avoid `os.system()` or `subprocess.run(..., shell=True)` with unsanitized input. | LLM | SKILL.md:190 |
Scan History
Embed Code
[](https://skillshield.io/report/1fd22ed39fee523a)
Powered by SkillShield