Trust Assessment
oebb-scotty received a trust score of 65/100, placing it in the Caution category. This skill has some security considerations that users should review before deployment.
SkillShield's automated analysis identified 5 findings: 5 critical, 0 high, 0 medium, and 0 low severity. Key findings include Command Injection via Unsanitized User Input in Shell Script.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The LLM Behavioral Safety 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 Findings5
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Command Injection via Unsanitized User Input in Shell Script The `arrivals.sh` script constructs JSON payloads for `curl -d` and `jq` filters by directly interpolating user-supplied arguments (`$STATION`, `$DATE`, `$TIME`, `$MAX`). This allows an attacker to inject arbitrary shell commands by crafting malicious input that breaks out of the JSON string or `jq` filter and executes code. For example, providing a station name like `" ; rm -rf / ; echo "` could lead to arbitrary code execution on the host system. Sanitize all user-supplied input before embedding it into shell commands or JSON strings. For JSON construction in shell scripts, use `jq -n --arg key "$value" '{ "key": $key }'` to safely embed variables, or a dedicated JSON library that handles escaping. For `jq` filters, ensure the filter string itself is not constructed from untrusted input. | LLM | arrivals.sh:26 | |
| CRITICAL | Command Injection via Unsanitized User Input in Shell Script The `departures.sh` script constructs JSON payloads for `curl -d` and `jq` filters by directly interpolating user-supplied arguments (`$STATION`, `$DATE`, `$TIME`, `$MAX`). This allows an attacker to inject arbitrary shell commands by crafting malicious input that breaks out of the JSON string or `jq` filter and executes code. For example, providing a station name like `" ; rm -rf / ; echo "` could lead to arbitrary code execution on the host system. Sanitize all user-supplied input before embedding it into shell commands or JSON strings. For JSON construction in shell scripts, use `jq -n --arg key "$value" '{ "key": $key }'` to safely embed variables, or a dedicated JSON library that handles escaping. For `jq` filters, ensure the filter string itself is not constructed from untrusted input. | LLM | departures.sh:26 | |
| CRITICAL | Command Injection via Unsanitized User Input in Shell Script The `disruptions.sh` script constructs JSON payloads for `curl -d` and `jq` filters by directly interpolating user-supplied arguments (`$MAX`). This allows an attacker to inject arbitrary shell commands by crafting malicious input that breaks out of the JSON string or `jq` filter and executes code. For example, providing `MAX` as `10", "evil": system("id") #` could lead to arbitrary code execution on the host system. Sanitize all user-supplied input before embedding it into shell commands or JSON strings. For JSON construction in shell scripts, use `jq -n --arg key "$value" '{ "key": $key }'` to safely embed variables, or a dedicated JSON library that handles escaping. For `jq` filters, ensure the filter string itself is not constructed from untrusted input. | LLM | disruptions.sh:10 | |
| CRITICAL | Command Injection via Unsanitized User Input in Shell Script The `search-station.sh` script constructs JSON payloads for `curl -d` and `jq` filters by directly interpolating user-supplied arguments (`$QUERY`). This allows an attacker to inject arbitrary shell commands by crafting malicious input that breaks out of the JSON string or `jq` filter and executes code. For example, providing a query like `" ; rm -rf / ; echo "` could lead to arbitrary code execution on the host system. Sanitize all user-supplied input before embedding it into shell commands or JSON strings. For JSON construction in shell scripts, use `jq -n --arg key "$value" '{ "key": $key }'` to safely embed variables, or a dedicated JSON library that handles escaping. For `jq` filters, ensure the filter string itself is not constructed from untrusted input. | LLM | search-station.sh:14 | |
| CRITICAL | Command Injection via Unsanitized User Input in Shell Script The `trip.sh` script constructs JSON payloads for `curl -d` and `jq` filters by directly interpolating user-supplied arguments (`$FROM`, `$TO`, `$DATE`, `$TIME`, `$NUM`). This allows an attacker to inject arbitrary shell commands by crafting malicious input that breaks out of the JSON string or `jq` filter and executes code. For example, providing a station name like `" ; rm -rf / ; echo "` could lead to arbitrary code execution on the host system. Sanitize all user-supplied input before embedding it into shell commands or JSON strings. For JSON construction in shell scripts, use `jq -n --arg key "$value" '{ "key": $key }'` to safely embed variables, or a dedicated JSON library that handles escaping. For `jq` filters, ensure the filter string itself is not constructed from untrusted input. | LLM | trip.sh:26 |
Scan History
Embed Code
[](https://skillshield.io/report/b28a9d64fc1f901d)
Powered by SkillShield