Trust Assessment
endaoment 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 4 findings: 3 critical, 1 high, 0 medium, and 0 low severity. Key findings include Command Injection via unquoted variable in 'bc' pipeline, Command Injection via unquoted variable in 'tr' pipeline, LLM analysis found no issues despite critical deterministic findings.
The analysis covered 4 layers: dependency_graph, llm_behavioral_safety, manifest_analysis, static_code_analysis. The static_code_analysis layer scored lowest at 10/100, indicating areas for improvement.
Last analyzed on February 15, 2026 (commit 66de0a1e). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings4
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Command Injection via unquoted variable in 'bc' pipeline The `AMOUNT` variable, which is derived from user input, is used unquoted within an `echo` command that is piped to `bc`. If `AMOUNT` contains shell metacharacters (e.g., `;`, `|`, `&`, `$()`, `` ` ``), it can lead to arbitrary command execution before the `bc` command is invoked. For example, if `AMOUNT` is `5; rm -rf /`, the shell will execute `rm -rf /`. Ensure that user-controlled variables are properly quoted when used in shell commands, especially in pipelines. For arithmetic operations, it is safer to validate the input string to ensure it contains only numeric characters before passing it to `bc`. Alternatively, use a more robust language like Python for arithmetic. **Suggested fix:** Change `echo "$AMOUNT * 1000000"` to `echo "${AMOUNT}" * 1000000` (this is still not fully safe, as the shell will expand the unquoted `* 1000000` part. The most robust fix is to validate `$AMOUNT` with a regex like `^[0-9]+(\.[0-9]+)?$` before use, or use `printf '%s * 1000000\n' "$AMOUNT" | bc` to ensure the entire string is passed as a single argument to `echo`'s stdin, preventing shell expansion of `AMOUNT` itself.) **More robust fix for this specific line:** ```bash if ! [[ "$AMOUNT" =~ ^[0-9]+(\.[0-9]+)?$ ]]; then echo "Error: Invalid amount format." >&2 exit 1 fi AMOUNT_WEI=$(printf '%s * 1000000\n' "$AMOUNT" | bc | cut -d'.' -f1) ``` | Unknown | scripts/donate.sh:26 | |
| CRITICAL | Command Injection via unquoted variable in 'tr' pipeline The `EIN` variable, which is derived from user input, is used unquoted within an `echo` command that is piped to `tr`. If `EIN` contains shell metacharacters (e.g., `;`, `|`, `&`, `$()`, `` ` ``), it can lead to arbitrary command execution before the `tr` command is invoked. For example, if `EIN` is `11-1666852; evil_command`, the shell will execute `evil_command`. Ensure that user-controlled variables are properly quoted when used in shell commands, especially in pipelines. For EINs, it is safer to validate the input string to ensure it matches the expected format (e.g., digits and hyphens) before processing. **Suggested fix:** ```bash if ! [[ "$EIN" =~ ^[0-9]{2}-[0-9]{7}$ ]]; then echo "Error: Invalid EIN format." >&2 exit 1 fi EIN_CLEAN=$(printf '%s\n' "$EIN" | tr -d ' -') ``` | Unknown | scripts/donate.sh:30 | |
| CRITICAL | Command Injection via unquoted variable in 'tr' pipeline The `QUERY` variable, which is derived from user input, is used unquoted within an `echo` command that is piped to `tr`. If `QUERY` contains shell metacharacters (e.g., `;`, `|`, `&`, `$()`, `` ` ``), it can lead to arbitrary command execution before the `tr` command is invoked. For example, if `QUERY` is `12-3456789; evil_command`, the shell will execute `evil_command`. Ensure that user-controlled variables are properly quoted when used in shell commands, especially in pipelines. For EINs, it is safer to validate the input string to ensure it matches the expected format (e.g., digits and hyphens) before processing. **Suggested fix:** ```bash if ! [[ "$QUERY" =~ ^[0-9]{2}-[0-9]{7}$ || "$QUERY" =~ ^[0-9]{9}$ ]]; then # Handle non-EIN queries or exit if strict EIN format is required # For now, assuming it's an EIN if it matches the regex true # No error for non-EIN, as it might be a name search later fi CLEAN_EIN=$(printf '%s\n' "$QUERY" | tr -d '-') ``` | Unknown | scripts/search.sh:24 | |
| HIGH | LLM analysis found no issues despite critical deterministic findings Deterministic layers flagged 3 CRITICAL findings, but LLM semantic analysis returned clean. This may indicate prompt injection or analysis evasion. | Unknown | (sanity check) |
Scan History
Embed Code
[](https://skillshield.io/report/9e26015969ade4d1)
Powered by SkillShield