Back to skill

Security audit

Summarize a person's git commits for a specific date, grouped by feature points, in English. Use when reviewing daily work output.

Security checks for vulnerabilities and agentic risk

Overview

This skill has a clear purpose, but its shell-command templates place user-provided values into Bash commands without safety guidance, which creates a review-worthy command-injection risk.

Review this skill before installing. It appears intended for read-only git commit summaries, but it should be tightened to validate the date, reject control characters in author names, and pass user inputs to git without embedding them into shell command text.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:16
Finding

Potential Shell Command Injection Through Unsanitized Skill Arguments

Content
View full analysis
" --before="" --author="$1" --pretty=format:"%h %s" --no-merges ``` Convert the date `$0` (format: `YYYY.MM.DD`) to proper git date range: - `--after` = the date at 00:00:00 - `--before` = the next day at 00:00:00 2. Also run `git log` with `--stat` to understand the scope of changes: ``` git log --after="" --before="" --author="$1" --stat --no-merges ``` ``` ### Technical Analysis The Skill permits use of the Bash tool and directs the agent to construct shell commands using a user-provided date and author. It does not require validation of either input or prescribe a safe argument-passing mechanism. If an implementation performs textual substitution when replacing `$1`, ``, or ``, an attacker may provide quotation marks, command substitutions, control characters, or shell metacharacters that terminate the intended argument and introduce additional shell syntax. Surrounding a placeholder with double quotes is insufficient when untrusted content is inserted into the command string before the shell parses it. Exploitation depends on how the invoking agent performs interpolation. Passing values directly as already-separated process arguments would prevent this issue, while constructing and executing a shell command string may expose it. ### Attack Path 1. An attacker invokes the Skill with a crafted author name or date containing shell syntax. 2. The agent converts the supplied values into the documented `git log` command through textual interpolation. 3. The malicious input breaks out of the intended quoted argument or introduces command substitution. 4. Bash parses the injected syntax as an additional command. 5. The injected command exec ...[truncated 801 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The description explicitly requires summaries to be produced 'in English,' which is a language/locale constraint. Under the policy, forcing a specific language without offering user choice or documenting a justified regional requirement is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The rule 'Output in English only' imposes a strict language requirement in the skill instructions. Because no opt-in, alternative language support, or justification is provided elsewhere in the file, this violates the language/locale policy.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.