Back to skill

Security audit

Vibes: Culture you've live.

Security checks for vulnerabilities and agentic risk

Overview

This skill mostly does what it says, but its install/update path and reminder guidance give it more lasting influence than a local media-tracking skill needs.

Review this skill before installing. It is not evidence of theft or sabotage, but prefer a pinned release or commit, verify the downloaded SKILL.md, avoid the unpinned npx path, and do not enable HEARTBEAT.md or cron reminders unless you intentionally want recurring agent checks over your personal media notes.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T08 · Insecure Dependencies

Error
Location
README.md:47
Finding
Unpinned Package Download and Execution via npx## Vulnerability Details **File Location**: `README.md:44-48` **Vulnerability Type**: Unpinned third-party package execution **Risk Level**: High ```bash ### Other agents ```bash npx skills add haah-ing/vibes-skill ``` ``` ### Technical Analysis The documented installation command invokes the `skills` package through `npx` without specifying a reviewed version or verifying package integrity. If the package is not already available locally, `npx` can retrieve its current release from the configured package registry and execute it with the privileges of the user performing the installation. The effective installer can therefore change after this project has been audited. Compromise of the package, its publisher account, the package registry, or a related supply-chain component could cause the command to execute behavior that is absent from the reviewed repository. ### Attack Path 1. An attacker compromises the package publisher, registry entry, or another part of the package distribution chain. 2. The attacker publishes a modified version of the unpinned `skills` package. 3. A user follows the installation instructions and runs `npx skills add haah-ing/vibes-skill`. 4. `npx` retrieves the current compromised package version. 5. The malicious package executes with the installing user's privileges and can perform operations permitted to that account. ### Impact Assessment Successful exploitation could execute arbitrary package lifecycle or installer code under the current user's account. Depending on that account's permissions and environment, this could expose user-readable files, modify local configuration, install additional components, alter agent skills, or access credentials available to the process. The reviewed repository itself does not contain such a payload; the risk arises from executing a mutable, unverified dependency.
Remediation
## Remediation Suggestions - Pin the installer to a specific, reviewed package version rather than relying on the current registry release. - Use a lockfile and registry integrity metadata where the installation workflow supports them. - Publish the expected package digest and verify it before execution. - Prefer a manual installation method that downloads a specific audited artifact without executing a general-purpose package installer. - Document the exact trusted package publisher and registry. - Run installation in a least-privileged or isolated environment and review changes before activating the skill.

T03 · Remote Payload Retrieval and Execution

Error
Location
README.md:41
Finding
Mutable Remote Skill Retrieval Without Integrity Verification## Vulnerability Details **File Location**: `README.md:38-42`; `SKILL.md:249-255` **Vulnerability Type**: Retrieval and activation of a mutable remote instruction payload **Risk Level**: High Installation instructions in `README.md`: ```bash ### Claude Code ```bash mkdir -p ~/.claude/skills/vibes curl -o ~/.claude/skills/vibes/SKILL.md https://raw.githubusercontent.com/haah-ing/vibes-skill/main/SKILL.md ``` ``` Update instructions in `SKILL.md`: ```markdown ## Updating To update this skill to the latest version, fetch the new SKILL.md from GitHub and replace this file: ``` https://raw.githubusercontent.com/haah-ing/vibes-skill/main/SKILL.md ``` ``` ### Technical Analysis Both installation and update procedures retrieve `SKILL.md` from the mutable `main` branch without pinning a commit, checking a cryptographic digest, or validating a signature. Although `SKILL.md` is not conventional native code, it is an instruction payload loaded by an AI agent and controls the agent's behavior and tool usage. Replacing it effectively activates whatever instructions are present in the remote file at retrieval time. Consequently, the locally activated behavior can differ from the version reviewed in this audit. Compromise of the upstream repository, maintainer account, branch, or content-delivery path could introduce malicious instructions, including instructions to misuse agent tools or access data available to the agent. ### Attack Path 1. An attacker gains the ability to modify the upstream repository's `main` branch or otherwise influence the retrieved response. 2. The attacker replaces `SKILL.md` with instructions that direct an agent to perform unauthorized operations. 3. A user runs the documented `curl` installation command or follows the update procedure. 4. The mutable remote file overwrites the trusted local skill file without integrity verification. 5. The AI agent subsequently loads and follows the ...[truncated 727 chars]
Remediation
## Remediation Suggestions - Replace the `main` branch URL with a URL pinned to a reviewed commit hash or immutable release artifact. - Publish a SHA-256 or stronger digest for every release and require verification before replacing the active skill. - Cryptographically sign releases and document signature verification using a separately distributed trusted public key. - Download updates to a staging location rather than overwriting the active `SKILL.md` directly. - Present a diff and require explicit user review and approval before activation. - Retain the previous trusted version to support rollback. - Protect release branches and maintainer accounts with mandatory review, signed commits or tags, and strong multifactor authentication.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (14)

Self-Modification

High
Category
Rogue Agent
Content
## Updating

To update this skill to the latest version, fetch the new SKILL.md from GitHub and replace this file:

```
https://raw.githubusercontent.com/haah-ing/vibes-skill/main/SKILL.md
Confidence
99% confidence
Finding
The skill instructs updating itself by replacing SKILL.md, which is classic self-modification. In agent systems, self-modification is dangerous because it can permanently alter future behavior, bypass normal review paths, and convert a benign skill into one that performs broader or unsafe actions.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The README encourages storing detailed cultural preferences, ratings, relationships, and notes as persistent local files, which can collectively reveal sensitive behavioral and social profiling information. Omitting any privacy warning or guidance increases the risk that users expose personal data through backups, sync tools, repo commits, or agent access they did not fully consider.

Skill Enumeration

Medium
Category
Agent Snooping
Content
### Claude Code

```bash
mkdir -p ~/.claude/skills/vibes
curl -o ~/.claude/skills/vibes/SKILL.md https://raw.githubusercontent.com/haah-ing/vibes-skill/main/SKILL.md
```
Confidence
85% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Session Persistence

Medium
Category
Rogue Agent
Content
### Claude Code

```bash
mkdir -p ~/.claude/skills/vibes
curl -o ~/.claude/skills/vibes/SKILL.md https://raw.githubusercontent.com/haah-ing/vibes-skill/main/SKILL.md
```
Confidence
60% confidence
Finding
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Skill Enumeration

Medium
Category
Agent Snooping
Content
```bash
mkdir -p ~/.claude/skills/vibes
curl -o ~/.claude/skills/vibes/SKILL.md https://raw.githubusercontent.com/haah-ing/vibes-skill/main/SKILL.md
```

### Other agents
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Skill Enumeration

Medium
Category
Agent Snooping
Content
```bash
mkdir -p ~/.claude/skills/vibes
curl -o ~/.claude/skills/vibes/SKILL.md https://raw.githubusercontent.com/haah-ing/vibes-skill/main/SKILL.md
```

### Other agents
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Skill Enumeration

Medium
Category
Agent Snooping
Content
```bash
mkdir -p ~/.claude/skills/vibes
curl -o ~/.claude/skills/vibes/SKILL.md https://raw.githubusercontent.com/haah-ing/vibes-skill/main/SKILL.md
```

### Other agents
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The README instructs users to run `npx skills add haah-ing/vibes-skill` without pinning a package version or commit. That makes installation depend on whatever package content is current at execution time, creating a supply-chain risk if the package or its dependencies are compromised or changed unexpectedly.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The invocation description is broad enough to trigger on ordinary conversation about media, preferences, or recommendations. Over-broad activation increases the chance the agent will read, search, or write files when the user did not intend to invoke the skill, which can cause unnecessary data access and unintended state changes.

Vague Triggers

Medium
Confidence
97% confidence
Finding
The core behavior explicitly instructs activation from broad conversational cues and to surface relevant items 'without being asked'. In context, this increases the risk of unsolicited searches across local notes and unprompted file updates, which is risky even if the data is not highly sensitive because it weakens consent boundaries.

Context-Inappropriate Capability

Medium
Confidence
96% confidence
Finding
The skill directs the agent to modify HEARTBEAT.md or suggest creating a cron job, which expands behavior from local media logging into persistence and scheduled execution. That is unnecessary for the skill's stated purpose and can create unwanted automation, repeated prompting, or privilege-sensitive system changes without a clear user need.

Context-Inappropriate Capability

Medium
Confidence
98% confidence
Finding
The skill includes a remote fetch-and-replace update path from GitHub, causing the agent to retrieve and overwrite its own instruction file from network content. This is a supply-chain and self-modification risk: a compromised repository, MITM in a weak environment, or mistaken URL could alter future behavior outside the user's review.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The fetch-and-replace update instruction lacks any warning, integrity check, or approval gate despite replacing the skill definition from a remote source. That makes a hazardous action appear routine and lowers the barrier to accidental execution of unreviewed remote content.

Intent-Code Divergence

Low
Confidence
77% confidence
Finding
The skill states that automated tracking and external integrations are out of scope, emphasizing privacy and local-first use. Yet it later instructs the agent to search for cover images and to fetch the latest SKILL.md from GitHub, which contradicts the stated local-first/no-external-integration posture.

Static analysis

No suspicious patterns detected.