Trust Assessment
git-notes-memory 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 17 findings: 8 critical, 8 high, 1 medium, and 0 low severity. Key findings include Arbitrary command execution, Dangerous call: subprocess.run(), Arbitrary directory operations and filesystem manipulation.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Manifest Analysis layer scored lowest at 0/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 Findings17
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/mourad-ghafiri/git-notes-memory/memory.py:26 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/mourad-ghafiri/git-notes-memory/memory.py:30 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/mourad-ghafiri/git-notes-memory/memory.py:50 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/mourad-ghafiri/git-notes-memory/memory.py:51 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/mourad-ghafiri/git-notes-memory/memory.py:52 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/mourad-ghafiri/git-notes-memory/memory.py:53 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/mourad-ghafiri/git-notes-memory/memory.py:60 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/mourad-ghafiri/git-notes-memory/memory.py:98 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function '_git'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/mourad-ghafiri/git-notes-memory/memory.py:26 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function '_git_ok'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/mourad-ghafiri/git-notes-memory/memory.py:30 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function '_save'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/mourad-ghafiri/git-notes-memory/memory.py:98 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function '_ensure_git'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/mourad-ghafiri/git-notes-memory/memory.py:51 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function '_ensure_git'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/mourad-ghafiri/git-notes-memory/memory.py:52 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function '_ensure_git'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/mourad-ghafiri/git-notes-memory/memory.py:53 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function '_ensure_git'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/mourad-ghafiri/git-notes-memory/memory.py:60 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function '_ensure_git'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/mourad-ghafiri/git-notes-memory/memory.py:50 | |
| MEDIUM | Arbitrary directory operations and filesystem manipulation The `memory.py` script accepts a `-p` or `--path` argument, allowing the user to specify an arbitrary project directory (`cwd`). The script then performs `git` operations within this directory, including initializing a new git repository (`git init`) and creating commits (`git commit --allow-empty`) if one doesn't exist. This functionality allows an attacker to create `.git` directories and associated files in any location accessible to the skill's execution environment, potentially polluting sensitive directories, interfering with existing non-git projects, or consuming disk space in unintended locations. While direct shell injection into `git` arguments is mitigated by passing arguments as a list, the ability to manipulate arbitrary filesystem locations is a security concern. Implement strict path validation for the `--path` argument. Restrict the skill's operation to a designated, sandboxed directory (e.g., a sub-directory of the agent's workspace) or require explicit user confirmation for operations outside a predefined safe zone. Avoid automatically initializing git repositories in arbitrary user-provided paths. | LLM | memory.py:45 |
Scan History
Embed Code
[](https://skillshield.io/report/5c0cb9b26de2451a)
Powered by SkillShield