T09 · Insecure Skill Coding Practices
- Location
SKILL.md:50- Finding
Untrusted Repository Commands Executed Through Make Targets
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a Git review helper, but it claims to be read-only while instructing agents to run repository-defined commands and change staging or file contents.
Review this skill carefully before installing. It is not just observational: an agent following it may run Makefile targets, stage or unstage files, and format code. Use it only in repositories you trust, and require explicit confirmation before any command that changes files, changes the Git index, or executes project-defined targets.
SKILL.md:50Untrusted Repository Commands Executed Through Make Targets
SKILL.md:46Read-Only Review Workflow Directs Unauthorized Workspace and Index Mutations
The top-level description claims the skill is a read-only preflight, yet later instructions include commands that can rewrite files or alter staged state, such as formatting, lint-driven fixes, and stage/unstage guidance. This kind of semantic mismatch is dangerous because safety policy, user expectations, and automation routing may all rely on the manifest description when deciding whether the skill is safe to invoke.
The skill markets itself as a read-only preflight, but these steps tell the agent or user to change repository state by staging/unstaging files and by fixing issues immediately. That mismatch can cause unexpected write actions in a context where downstream systems or users may have granted trust based on the read-only description, increasing the risk of unintended repository modifications.
Using 'status' as a trigger can shadow or collide with a built-in command of the same name, causing this skill to activate when a user intended a standard tool action. In a skill that is presented as read-only but includes mutating guidance, such command ambiguity raises the risk of unintended workflow execution and confusing or unsafe behavior.
Using 'diff' as a trigger can shadow or conflict with a built-in 'diff' command, making accidental invocation more likely during normal development workflows. Since the skill contains broader workflow instructions than a simple diff display, this collision can lead to unexpected behavior and unsafe task routing.
The triggers include very generic terms like 'git', 'status', and 'diff', which are likely to match ordinary conversations and invoke the skill unexpectedly. Because the skill contains instructions that can lead to repository changes, overbroad triggering increases the chance of accidental activation in unrelated or only partially related contexts.
The skill context describes a read-only preflight used before commits or PRs to verify workspace state and staged changes. git log --oneline -10 and git show <commit-hash> add commit-history and arbitrary commit inspection capabilities, which are not necessary to confirm current workspace state or the staged set.
The instruction to stage or unstage files appears without a prominent warning that this modifies repository state. In isolation this is a modest issue, but in the context of a purported read-only preflight it materially increases the chance that a user or agent performs unintended state changes.
The stated purpose is to confirm the workspace state and staged changes as a preflight. Comparing origin/main...HEAD reviews the entire branch delta against main, which goes beyond checking the current staged set and workspace cleanliness.
No suspicious patterns detected.