Trust Assessment
anachb 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 4 findings: 0 critical, 4 high, 0 medium, and 0 low severity. Key findings include Command Injection via JSON Payload and jq filter (departures.sh), Command Injection via JSON Payload (disruptions.sh), Command Injection via JSON Payload and jq filter (route.sh).
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The LLM Behavioral Safety layer scored lowest at 40/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 Findings4
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| HIGH | Command Injection via JSON Payload and jq filter (departures.sh) The `STATION_ID` and `COUNT` variables are directly interpolated into the `curl` command's JSON payload and the `jq` filter without proper sanitization. An attacker can inject arbitrary JSON by providing a `STATION_ID` containing a double quote (e.g., `123", "malicious_key": "value"`). The `COUNT` variable, expected to be an integer, is unquoted in the JSON and directly expanded in the `jq` command. This allows for JSON injection (e.g., `10, "malicious_key": "value"`) or `jq` command injection (e.g., `10; .[] | .malicious_field`) leading to arbitrary modification of the API request or data processing. Sanitize user input before embedding it into JSON payloads or shell commands. For JSON strings, escape double quotes and backslashes. For JSON numbers, validate that the input is purely numeric. For `jq` commands, pass user input as arguments using `--arg` or `--argjson` to prevent direct shell expansion and `jq` injection. Example for `STATION_ID`: `jq -n --arg id "$STATION_ID" '{ "extId": $id, ... }'`. Example for `COUNT`: `jq --argjson count "$COUNT" '...[:$count]...'`. | LLM | departures.sh:20 | |
| HIGH | Command Injection via JSON Payload (disruptions.sh) The `MAX_RESULTS` variable is directly interpolated into the `curl` command's JSON payload without proper sanitization. Expected to be an integer, it is unquoted in the JSON. This allows for JSON injection (e.g., `20, "malicious_key": "value"`) leading to arbitrary modification of the API request. Sanitize user input before embedding it into JSON payloads. For JSON numbers, validate that the input is purely numeric. A safer approach is to construct the JSON using `jq -n --argjson max_results "$MAX_RESULTS" '{ "maxNum": $max_results, ... }'`. | LLM | disruptions.sh:15 | |
| HIGH | Command Injection via JSON Payload and jq filter (route.sh) The `FROM_ID`, `TO_ID`, and `COUNT` variables are directly interpolated into the `curl` command's JSON payload and the `jq` filter without proper sanitization. An attacker can inject arbitrary JSON by providing `FROM_ID` or `TO_ID` containing a double quote (e.g., `123", "malicious_key": "value"`). The `COUNT` variable, expected to be an integer, is unquoted in the JSON and directly expanded in the `jq` command. This allows for JSON injection (e.g., `3, "malicious_key": "value"`) or `jq` command injection (e.g., `3; .[] | .malicious_field`) leading to arbitrary modification of the API request or data processing. Sanitize user input before embedding it into JSON payloads or shell commands. For JSON strings, escape double quotes and backslashes. For JSON numbers, validate that the input is purely numeric. For `jq` commands, pass user input as arguments using `--arg` or `--argjson` to prevent direct shell expansion and `jq` injection. Example for `FROM_ID`/`TO_ID`: `jq -n --arg from "$FROM_ID" --arg to "$TO_ID" '{ "depLocL": [{"extId": $from, ...}], "arrLocL": [{"extId": $to, ...}], ... }'`. Example for `COUNT`: `jq --argjson count "$COUNT" '...[:$count]...'`. | LLM | route.sh:24 | |
| HIGH | Command Injection via JSON Payload (search.sh) The `QUERY` variable is directly interpolated into the `curl` command's JSON payload without proper sanitization. An attacker can inject arbitrary JSON by providing a `QUERY` containing a double quote (e.g., `Stephansplatz", "malicious_key": "value"`) leading to arbitrary modification of the API request. Sanitize user input before embedding it into JSON payloads. For JSON strings, escape double quotes and backslashes. A safer approach is to construct the JSON using `jq -n --arg query "$QUERY" '{ "loc": { "name": $query }, ... }'`. | LLM | search.sh:20 |
Scan History
Embed Code
[](https://skillshield.io/report/b0141853f413acb8)
Powered by SkillShield