Back to skill

Security audit

skill-publish

Security checks for vulnerabilities and agentic risk

Overview

This skill is meant to publish skills, but it gives the agent broad repository publishing power and adds persistent/self-updating behavior that users should review before installing.

Use this only after reviewing the exact repository, remote URL, branch, staged file list, and publication targets. Do not run it in a directory containing secrets or unrelated files. Prefer pinning the required publishing tools, disabling or removing the repo-map and diary/self-evolution behavior, and requiring explicit confirmation before any commit, push, remote change, force-push, or registry publish.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (3)

T08 · Insecure Dependencies

Error
Location
SKILL.md:17
Finding

Unpinned Third-Party CLI Installation Creates a Supply-Chain Risk

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:65
Finding

Indiscriminate Git Staging Can Publish Secrets and Unintended Files

Content
View full analysis
"` ``` The repository-initialization flow also states: ```markdown 1. Run `git init` 2. Run `git add .` to stage all files ``` ### Technical Analysis The workflow uses `git add .`, recursively staging all eligible files beneath the working directory. It does not require a secret scan, an explicit file allowlist, validation of `.gitignore`, review of untracked files, or user approval of the final staged diff before committing and pushing. The existing-repository flow requests `git diff` before staging. However, ordinary `git diff` does not display the contents of untracked files. Those files can subsequently be included by `git add .`. In the initialization path, all files are staged immediately, without any preceding content review. Common sensitive files that could be unintentionally committed include `.env` files, private keys, API-token files, cloud credentials, local databases, exported browser data, build artifacts, and proprietary documents. Once committed and pushed, deleting the working-tree copy does not remove the data from Git history. The workflow then publishes or indexes the repository through m ...[truncated 1725 chars]
Remediation
View remediation

T02 · Agent Memory Poisoning

Warning
Location
SKILL.md:144
Finding

Execution Feedback Can Be Converted into Persistent Skill Instructions

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (9)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The workflow initializes git, stages all files, commits everything, modifies remotes, and changes the branch without an upfront warning in the skill description. These are high-impact repository mutations that can capture secrets, unpublished work, or unrelated files and publish them to a remote destination.

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
88% confidence
Finding

The skill is designed to execute high-impact tool commands such as git push, retry logic, remote URL changes, and optional force-push based on derived parameters. In a publishing context this is sensitive because incorrect branch or remote resolution can send code to the wrong destination or overwrite remote history, especially when paired with automated remote rewriting.

Content

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

md
### Step 4: Push to GitHub

1. Detect the current branch: `git branch --show-current`
2. Try normal push: `git push -u origin <branch>`
3. **If the push fails with a connection error** (e.g., "Could not connect to server", "Failed to connect", timeout, network unreachable):
   - Run `git remote get-url origin` to inspect the current URL.
   - If the URL starts with `https://`, retry up to **3 times**.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
three executions, refine it into a formal rule and submit a PR to modify this `SKILL.md`.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The trigger phrases are broad enough that ordinary requests about uploading or updating a skill could activate a workflow that performs repository initialization, staging, commits, pushes, and third-party publication. Overbroad activation raises the risk of the skill running in contexts where the user did not intend those side effects.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

Saving local path-to-GitHub mappings creates a local record linking filesystem structure to remote repositories, which may expose sensitive workspace layout or project associations. Because this persistence is automatic and not clearly disclosed up front, users may unknowingly leak private metadata into local files or repositories.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The documented behavior goes beyond publishing by maintaining diary records and changing the skill's own implementation. Expanding scope in this way increases the chance of unintended file writes, data retention, and future unsafe behavior not expected by a user invoking a publish workflow.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill includes a self-evolution mechanism that writes execution-derived content to local files and proposes modifying its own SKILL.md via a PR. That behavior is unrelated to the stated publishing purpose and creates an unnecessary path for persistence, prompt drift, and unauthorized capability expansion over time.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The self-evolution mechanism appends execution-derived content to diary files and proposes modifying SKILL.md without warning the user. This creates hidden persistence and an avenue for prompt/instruction changes based on untrusted operational outcomes, which can compound unsafe behavior across future runs.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
98% confidence
Finding

Lines L115-L118 state the skill should read both name and description from frontmatter and that the name and description come from SKILL.md. But the documented command only includes --slug, --name, --version, and --changelog, with no description argument, so the documentation contradicts the described action.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.