Back to skill

Security audit

skill-creator

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly purpose-aligned for creating skills, but its helper scripts have filesystem containment gaps that could write outside the intended folder or package unintended local files.

Install only if you are comfortable with a skill that helps agents create and modify other skills. Run the included scripts on trusted skill names and trusted skill folders, inspect generated diffs before using or publishing them, and avoid packaging untrusted directories until symlink and path-containment checks are added.

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 (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/init_skill.py:200
Finding

Unvalidated Skill Name Allows Path Traversal and Filesystem Writes Outside the Output Directory

Content
View full analysis
Remediation
View remediation
64 or not re.fullmatch( r"[a-z0-9]+(?:-[a-z0-9]+)*", skill_name, ): raise ValueError( "Skill name must be a kebab-case identifier of at most 64 characters" ) ``` 2. Explicitly reject absolute paths, path separators, and special path components: ```python candidate_name = Path(skill_name) if candidate_name.is_absolute() or len(candidate_name.parts) != 1: raise ValueError("Skill name must be a single relative path component") ``` 3. Resolve the final destination and verify containment beneath the base directory: ```python base_dir = Path(path).resolve() skill_dir = (base_dir / skill_name).resolve() if not skill_dir.is_relative_to(base_dir): raise ValueError("Skill destination escapes the requested output directory") ``` 4. Apply validation in both the CLI entry point and `init_skill()` so that library callers cannot bypass it. 5. Create files with restrictive permissions and avoid making generated placeholder scripts executable unless execution is required. 6. Add regression tests covering absolute names, `../`, nested path components, leading or trailing hyphens, consecutive hyphens, and names longer than 64 characters. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/package_skill.py:67
Finding

Skill Packaging Follows Symbolic Links and Can Disclose Files Outside the Skill Directory

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (7)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The declared purpose omits that the skill performs structured validation and filesystem inspection of local skill folders and SKILL.md content. Even if these actions are legitimate, hiding operational behavior behind a broad 'guide' description creates a transparency gap that can lead to unauthorized file access or execution in automated settings.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The declared purpose omits that the skill performs structured validation and filesystem inspection of local skill folders and SKILL.md content. Even if these actions are legitimate, hiding operational behavior behind a broad 'guide' description creates a transparency gap that can lead to unauthorized file access or execution in automated settings.

Content

No source excerpt is available for this finding.

Self-Modification

High
Category
Rogue Agent
Confidence
91% confidence
Finding

The skill explicitly instructs the agent to create and edit skill files, run initialization scripts, and package outputs, which is self-modification or agent-environment modification behavior. In a skill system, allowing a skill to author or alter other skills can enable persistence, privilege creep, or insertion of unsafe instructions into future agent runs.

Content

Scanner excerpt · SKILL.md (reported line 210)May include surrounding context.

md
1. Understand the skill with concrete examples
2. Plan reusable skill contents (scripts, references, assets)
3. Initialize the skill (run init_skill.py)
4. Edit the skill (implement resources and write SKILL.md)
5. Package the skill (run package_skill.py)
6. Iterate based on real usage

Self-Modification

High
Category
Rogue Agent
Confidence
90% confidence
Finding

This section directs the agent to update SKILL.md and delete unneeded files, which is direct modification of agent-executable configuration/instruction artifacts. Because SKILL.md governs future behavior, this creates a pathway for persistent changes that may alter agent actions beyond the current session.

Content

Scanner excerpt · SKILL.md (reported line 301)May include surrounding context.

md
Any example files and directories not needed for the skill should be deleted. The initialization script creates example files in `scripts/`, `references/`, and `assets/` to demonstrate structure, but most skills won't need all of them.

#### Update SKILL.md

**Writing Guidelines:** Always use imperative/infinitive form.

Self-Modification

High
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

Scanner excerpt · scripts/init_skill.py (reported line 266)May include surrounding context.

python
# Print next steps
    print(f"\n✅ Skill '{skill_name}' initialized successfully at {skill_dir}")
    print("\nNext steps:")
    print("1. Edit SKILL.md to complete the TODO items and update the description")
    print("2. Customize or delete the example files in scripts/, references/, and assets/")
    print("3. Run the validator when ready to check the skill structure")

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
76% confidence
Finding

The skill instructs the agent to run local scripts, create directories, delete files, and package archives, but it declares no explicit tool scope or permission boundaries. In an environment where skills may gain operational capabilities, this increases the risk of unintended filesystem or command execution beyond what a user expects from a 'guide' skill.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The description says the skill should be used when users want to create or update any skill that extends Claude's capabilities, which is a very wide activation scope. It does not provide negative examples or clear constraints distinguishing when this skill should trigger versus other skill-development or coding skills.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.