Back to skill

Security audit

Design System Components

Security checks for vulnerabilities and agentic risk

Overview

The skill content is a straightforward UI component guide, but its documented install command uses an unpinned executable installer and mutable GitHub source, so installation deserves review.

Review or replace the installation method before installing. Prefer a pinned release or commit and a checksum, or manually inspect and copy the reviewed files. The skill instructions themselves are low-risk UI guidance, but the unpinned installer/source can change later.

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
README.md:22
Finding
Unpinned Installer and Mutable Third-Party Source## Vulnerability Details **File Location**: `README.md`, lines 22-26 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ```bash ## Installation ```bash npx add https://github.com/wpank/ai/tree/main/skills/design-systems/design-system-components ``` ``` ### Technical Analysis The installation instructions invoke the npm package `add` through `npx` without specifying an exact package version or integrity digest. Depending on the local npm configuration and cache state, `npx` can download and execute the currently published version of that package. The installer is also directed to content hosted on the mutable `main` branch of a personal GitHub repository. Because neither the installer nor the repository content is cryptographically pinned to the versions reviewed during this audit, their behavior can change after review. This creates a supply-chain trust boundary in which compromise of the npm package, its publisher account, the GitHub account, or the upstream repository could cause users to install manipulated skill instructions or execute attacker-controlled installer behavior. The audit found no evidence that the currently documented source is malicious; the vulnerability is the unsafe, mutable installation mechanism. ### Attack Path 1. An attacker compromises the npm package used by `npx`, its publisher account, the referenced GitHub account, or the upstream repository. 2. The attacker publishes a malicious package version or modifies content on the referenced `main` branch. 3. A user follows the documented installation command. 4. `npx` retrieves the unpinned package, and the installer processes mutable remote content. 5. Malicious installer or lifecycle behavior executes with the privileges of the invoking user, or manipulated skill instructions are written into an Agent skill directory. 6. The installed content may subsequently influence Agent behavior whenever the skill is loaded. ### Impact Assessment Successful exploi ...[truncated 611 chars]
Remediation
## Remediation Suggestions 1. Pin the installer package to an exact, reviewed version rather than invoking an unspecified release through `npx`. 2. Verify the package using an npm lockfile, expected integrity digest, trusted provenance, and publisher-signature information where available. 3. Replace the mutable `main` branch reference with a reviewed commit hash or immutable, signed release tag. 4. Publish and verify a SHA-256 or stronger checksum for the downloaded skill content before installation. 5. Prefer a non-executing installation process, such as downloading a pinned archive, validating its checksum, and copying the reviewed files into the destination directory. 6. If an installer remains necessary, run it in a restricted environment without sensitive credentials, elevated privileges, or unnecessary filesystem access. 7. Document the expected repository owner, commit identifier, package version, and verification procedure so users can detect source substitution.
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (6)

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Session Persistence

Medium
Category
Rogue Agent
Content
From your project root:

```bash
mkdir -p .cursor/skills
cp -r ~/.ai-skills/skills/design-systems/design-system-components .cursor/skills/design-system-components
```
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
From your project root:

```bash
mkdir -p .claude/skills
cp -r ~/.ai-skills/skills/design-systems/design-system-components .claude/skills/design-system-components
```
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.

Skill Enumeration

Medium
Category
Agent Snooping
Content
#### Claude Code (global)

```bash
mkdir -p ~/.claude/skills
cp -r ~/.ai-skills/skills/design-systems/design-system-components ~/.claude/skills/design-system-components
```
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.

External Model or Provider Selection

Medium
Category
Excessive Agency
Content
---
name: design-system-components
model: standard
description: Patterns for building design system components using Surface primitives, CVA variants, and consistent styling. Use when building reusable UI components that follow design token architecture. Triggers on Surface component, CVA, class-variance-authority, component variants, design tokens.
---
Confidence
90% confidence
Finding
Skill selects an external model or provider that may use a different account or billing plan than the operator expects. Undisclosed model switches can cause unexpected cost or quota consumption.

Vague Triggers

Low
Confidence
84% confidence
Finding
The description says the skill 'Triggers on Surface component, CVA, class-variance-authority, component variants, design tokens.' While some terms are specific, phrases like 'component variants' and 'design tokens' are broad and could match many ordinary frontend discussions beyond the intended skill scope. The file does not provide exclusion conditions or negative examples to clarify when the skill should not activate.

Static analysis

No suspicious patterns detected.