T08 · Insecure Dependencies
- Location
SKILL.md:17- Finding
Unpinned Third-Party CLI Installation Creates a Supply-Chain Risk
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
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.
SKILL.md:17Unpinned Third-Party CLI Installation Creates a Supply-Chain Risk
SKILL.md:65Indiscriminate Git Staging Can Publish Secrets and Unintended Files
SKILL.md:144Execution Feedback Can Be Converted into Persistent Skill Instructions
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.
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.
### 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**.
Referenced artifact was not completely inspected
three executions, refine it into a formal rule and submit a PR to modify this `SKILL.md`.
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.
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.
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.
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.
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.
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.
No suspicious patterns detected.