Trust Assessment
todo received a trust score of 70/100, placing it in the Caution category. This skill has some security considerations that users should review before deployment.
SkillShield's automated analysis identified 1 finding: 1 critical, 0 high, 0 medium, and 0 low severity. Key findings include AppleScript Command Injection via Unsanitized User Input.
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 Findings1
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | AppleScript Command Injection via Unsanitized User Input The `scripts/todo.sh` script directly interpolates user-supplied arguments into AppleScript strings executed via `osascript -e`. This allows an attacker to inject arbitrary AppleScript commands, including `do shell script "..."`, leading to arbitrary shell command execution on the host system. For example, providing a title like `foo" & do shell script "open -a Calculator" & "bar` would execute the Calculator application. This vulnerability exists in all actions (`add`, `list`, `complete`, `uncomplete`, `delete`, `search`, `create-list`) that take user input and embed it into the AppleScript string without proper escaping. User-supplied input must be properly escaped before being embedded into AppleScript strings. A robust solution would involve using AppleScript's `quoted form of` for string literals. For example, instead of `set remTitle to \"$TITLE\"`, one might pass the title as an argument to a compiled AppleScript or use a more complex escaping mechanism within the shell script to ensure that any double quotes or backslashes in the input are correctly handled by both the shell and AppleScript. A safer approach is to pass arguments to the AppleScript via environment variables or temporary files, or to use `osascript -s s` to read script from stdin and pass arguments via `with parameters`. | LLM | scripts/todo.sh:14 |
Scan History
Embed Code
[](https://skillshield.io/report/a363ccc5245086f4)
Powered by SkillShield