Back to skill

Security audit

Testing Workflow

Security checks for vulnerabilities and agentic risk

Overview

The skill's testing workflow is coherent, but its recommended installer executes unpinned remote tooling from a mutable branch, so installation deserves review.

Install from a pinned, reviewed commit or use the manual copy path after inspecting the files, and do not run the npx command with elevated privileges. Expect the skill to inspect the project and propose or make test, documentation, and CI-related changes when you invoke it; also ensure any related skills it routes to are trusted separately.

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:34
Finding
Unpinned Third-Party Installer Execution## Vulnerability Details **File Location**: `README.md`, lines 34-38 **Vulnerability Type**: Unpinned executable dependency and mutable remote source **Risk Level**: Medium ### Vulnerable Code ```markdown ## Installation ```bash npx add https://github.com/wpank/ai/tree/main/skills/testing/testing-workflow ``` ``` ### Technical Analysis The documented installation command invokes `npx` with the package name `add`. If that package is not already available locally, `npx` can retrieve and execute it from the configured npm registry with the privileges of the installing user. The installer is then given a GitHub path on the mutable `main` branch rather than an immutable commit hash or verified release artifact. Consequently, both the executable installer package and the repository content may differ from what was reviewed during this audit. No version pin, commit pin, checksum, or signature verification is included in the instructions. This creates a supply-chain trust boundary in which compromise of the npm package, its maintainer account, the GitHub repository, or its maintainer account could introduce attacker-controlled behavior after review. ### Attack Path 1. An attacker compromises or maliciously updates the npm package resolved as `add`, or compromises the referenced GitHub repository or maintainer account. 2. The attacker publishes malicious installation logic or replaces content reachable from the mutable `main` branch. 3. A user follows the documented `npx add ...` installation command. 4. `npx` downloads and executes the resolved installer package. 5. The installer retrieves or processes the mutable remote repository content. 6. Attacker-controlled code executes in the user's environment or malicious skill content is installed for later use. ### Impact Assessment Successful exploitation could execute arbitrary commands with the permissions of the user running the installation. Depending on those per ...[truncated 520 chars]
Remediation
## Remediation Suggestions 1. Pin the `npx` installer to an explicitly reviewed package version rather than relying on the latest registry resolution. 2. Replace the mutable GitHub branch URL with an immutable, reviewed commit hash or signed release tag. 3. Publish and verify a cryptographic checksum or signature for the downloaded artifact before installation. 4. Prefer a non-executing installation process: download the reviewed files, verify their integrity, inspect the expected file list, and copy them into the destination. 5. If an installer must execute, document its exact package identity, version, expected behavior, required permissions, and integrity-verification procedure. 6. Advise users not to run the installation command with elevated privileges and to use an isolated environment where practical.
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (5)

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/testing/testing-workflow .cursor/skills/testing-workflow
```
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/testing/testing-workflow .claude/skills/testing-workflow
```
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/testing/testing-workflow ~/.claude/skills/testing-workflow
```
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: testing-workflow
model: standard
category: testing
description: Meta-skill that orchestrates comprehensive testing across a project by coordinating testing-patterns, e2e-testing, and testing agents. Use when setting up testing for a new project, improving coverage for an existing project, establishing a testing strategy, or verifying quality before a release.
version: 1.0
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.

Static analysis

No suspicious patterns detected.