Back to skill

Security audit

write-a-skill

Security checks for vulnerabilities and agentic risk

Overview

This skill coherently helps create Claude skills and its file-writing behavior is disclosed and aligned with that purpose, with one install-command supply-chain caveat users should notice.

Install this only if you want an agent to create or edit Claude skill files for you. Review generated paths before accepting changes, be careful with global skills because they affect future sessions, and prefer a pinned or verified installer instead of running an unpinned npx GitHub command blindly.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:58
Finding
Unpinned Remote Dependency Execution via npx## Vulnerability Details **File Location**: `SKILL.md:58` **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: Medium **Vulnerable Code**: ```markdown 10. **Report back**: skill path, the description verbatim, and the install command the user can run on other machines (`npx --yes github:dennisrongo/claude-skills install <name>` for library skills). ``` ### Technical Analysis The skill directs users to run a package directly from a mutable GitHub repository through `npx`. The dependency is not pinned to an immutable commit hash or verified release, so the code executed later may differ from the code that was originally reviewed. The `--yes` option also suppresses the package-installation confirmation prompt. This creates a supply-chain risk: compromise of the upstream repository, its maintainer account, or its default branch could replace the expected installer with malicious code. The vulnerability is classified as insecure dependency use rather than confirmed malicious behavior because the audited file contains no malicious payload and does not establish that the referenced repository is compromised. ### Attack Path 1. An attacker compromises the referenced GitHub repository or an account authorized to modify it. 2. The attacker adds malicious code to the repository revision resolved by the unpinned `npx` command. 3. The skill reports the documented installation command to a user. 4. The user runs `npx --yes github:dennisrongo/claude-skills install &lt;name&gt;`. 5. `npx` retrieves and executes the current upstream package without requiring installation confirmation. 6. The malicious package executes with the privileges and environmental access of the invoking user. ### Impact Assessment Successful exploitation permits arbitrary code execution under the invoking user's account. Depending on that account's privileges and environment, the payload could read or modify accessible project fil ...[truncated 404 chars]
Remediation
## Remediation Suggestions - Pin the GitHub dependency to a reviewed, immutable commit hash rather than a mutable default branch. - Prefer a signed and versioned release whose provenance and integrity can be verified. - Remove `--yes` so users retain an explicit confirmation boundary before remote code is installed and executed. - Document the exact trusted revision and provide a verification procedure for its commit or release signature. - Prefer a locally audited installer or vendored, integrity-checked package when practical. - Re-audit and deliberately update the pinned revision when adopting upstream changes.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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)

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill explicitly directs the agent to create directories, write new `SKILL.md` files, and modify `README.md`, but it does not require an explicit user-visible confirmation immediately before making those changes. In agent settings where users may expect analysis or drafting rather than direct mutation, this can lead to unexpected filesystem modifications and persistence of content the user did not realize would be written.

Missing User Warnings

Low
Confidence
81% confidence
Finding
The example says to fetch and read an external URL, but the skill does not require a warning or consent gate for network access. Even in an example, this normalizes outbound retrieval behavior that may surprise users, leak metadata, or violate restricted environments.

Static analysis

No suspicious patterns detected.