using-git-worktrees

SAFE max severity MEDIUMSkillSpector Caution 11 registry skills.sh last scanned 1 scan

Verdict safe, but 6 findings (2 medium, 4 low), mainly data exfiltration, resource abuse, policy violation. Most recent scan 2026-02-08.

The using-git-worktrees skill is generally well-designed for creating isolated git worktrees with safety verification. The core security posture is MODERATE with no critical threats detected. Primary concerns are: (1) command injection risk from unsanitized branch names, (2) unbounded resource consumption from automatic dependency installation and test execution without user confirmation or timeouts, and (3) missing metadata transparency. The skill correctly implements safety verification for .gitignore and follows systematic directory selection. No data exfiltration, credential theft, or prompt injection detected. The skill operates entirely locally with standard git operations. Recommended improvements: sanitize branch name input, add user confirmation for resource-intensive operations, and declare allowed-tools explicitly.

Scanner's overall assessment (LLM analyzer)

Second scanner: NVIDIA SkillSpector

Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.

What this skill does

Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification

Package
1 file, 5.5 KB
SKILL.md
751 words, 12+ sections
Code
None. Instructions only.

SKILL.md covers: Using Git Worktrees · Overview · Directory Selection Process · 1. Check Existing Directories · Check in priority order · 2. Check CLAUDE.md · 3. Ask User · Safety Verification · For Project-Local Directories (.worktrees or worktrees) · Check if directory is ignored (respects local, global, and system gitignore) · For Global Directory (~/.config/superpowers/worktrees) · Creation Steps

Findings

MEDIUM Command Injection Risk in Branch Name Variable Command Injectionllm

The skill uses $BRANCH_NAME variable directly in shell commands without validation or sanitization. If the branch name contains shell metacharacters (semicolons, backticks, command substitution syntax), it could lead to command injection when passed to 'git worktree add' or path construction. Example: a branch name like 'feature; rm -rf /' would execute unintended commands.

SKILL.md

git worktree add "$path" -b "$BRANCH_NAME" - The $BRANCH_NAME variable is used directly without sanitization. Path construction also uses unsanitized input: path="$LOCATION/$BRANCH_NAME"
Remediation: Validate branch names against git's allowed character set before use. Sanitize input by rejecting names containing shell metacharacters (;|&$`\n). Use git's built-in branch name validation or regex pattern matching: ^[a-zA-Z0-9/_-]+$
MEDIUM Unbounded Dependency Installation Without User Confirmation Resource Abusellm

The skill automatically runs package installation commands (npm install, pip install, cargo build, etc.) without user confirmation or resource limits. This could lead to excessive resource consumption, long-running operations, or installation of large dependency trees that exhaust disk space or network bandwidth. No timeout or size limits are specified.

SKILL.md

if [ -f package.json ]; then npm install; fi
if [ -f Cargo.toml ]; then cargo build; fi
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f pyproject.toml ]; then poetry install; fi
if [ -f go.mod ]; then go mod download; fi
Remediation: Add user confirmation before running dependency installation: 'Found package.json. Install dependencies with npm install? (y/n)'. Consider adding timeout limits and disk space checks. Warn users about potential resource usage before proceeding.
LOW Skill does not specify a license Policy Violationstatic

Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.

SKILL.md

Remediation: Add 'license' field to SKILL.md frontmatter (e.g., MIT, Apache-2.0)
LOW Missing allowed-tools Declaration Data Exfiltrationllm

The SKILL.md manifest does not specify the 'allowed-tools' field. While this field is optional per the agent skills specification, declaring it would improve transparency about which agent tools (Bash, Read, Write, etc.) this skill requires. The instructions clearly involve Bash execution, file reading (CLAUDE.md, .gitignore), and file writing (.gitignore modifications).

SKILL.md:1

YAML frontmatter missing 'allowed-tools' field. Instructions reference: bash commands (ls, grep, git), file reading (CLAUDE.md, .gitignore), file writing (adding to .gitignore).
Remediation: Add 'allowed-tools: [Bash, Read, Write]' to the YAML frontmatter to explicitly declare the required agent capabilities.
LOW Unbounded Test Execution Without Timeout Resource Abusellm

The skill runs project test suites automatically without timeout limits or resource constraints. Test suites could contain infinite loops, hang indefinitely, or consume excessive resources. While the skill asks whether to proceed if tests fail, there's no protection against tests that never complete.

SKILL.md

npm test
cargo test
pytest
go test ./...

No timeout or resource limits specified for test execution.
Remediation: Add timeout limits to test execution commands (e.g., timeout 5m npm test). Provide user option to skip tests if they prefer. Document expected test duration and warn if tests exceed reasonable time limits.
LOW Missing License and Compatibility Metadata Data Exfiltrationllm

The skill manifest does not specify 'license' or 'compatibility' fields. While optional, these fields help users understand usage rights and which environments (Claude.ai, Claude Code, API) the skill is designed for. This is informational only and does not indicate a security threat.

SKILL.md:1

YAML frontmatter shows:
- license: Not specified
- compatibility: Not specified
Remediation: Add license field (e.g., 'license: MIT') and compatibility field (e.g., 'compatibility: Works in Claude.ai, Claude Code, API with Bash access') to improve transparency.

What is in the package

FileKindSize
SKILL.mddoc5.5 KB

Package contents recorded 2026-10-22 at commit 06b92f36820f. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.

What we checked

What we did not check

Sources