Back to skill

Security audit

Clone, copy, rebuild, or reverse engineer any website

Security checks for vulnerabilities and agentic risk

Overview

This skill openly helps make exact website copies, but its scope is too broad and its setup commands are not pinned, so it should be reviewed before installation.

Install only if you intend to use it for sites you own or have explicit permission to reproduce. Run the npm setup and build commands in an isolated project with reviewed, pinned dependencies, and avoid using the workflow to copy third-party branding, text, logos, media, or layouts in a way that could mislead users.

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
SKILL.md:13
Finding
Execution of Unpinned npm Packages Through npx## Vulnerability Details **File Location**: `SKILL.md`, lines 13-15 and 119 **Vulnerability Type**: Supply-chain risk from unpinned package execution **Risk Level**: Medium ### Vulnerable Code ```markdown 1. Browser MCP tools are available (Playwright MCP or Chrome MCP, run `npx playwright install chromium` first to ensure browser readiness) 2. Target URL is accessible 3. Project is initialized: `npx create-next-app@latest` + Tailwind + shadcn/ui ``` ```markdown - **Check after each component**: `npx tsc --noEmit` ``` ### Technical Analysis The workflow directs the agent to execute npm package entry points without requiring exact package versions, integrity verification, or installation from an audited lockfile. In particular, `npx create-next-app@latest` explicitly downloads and executes the package version currently associated with the mutable `latest` tag. The `npx playwright` and `npx tsc` commands can also download packages when suitable local executables are unavailable. Their effective behavior therefore depends on the local project state, npm configuration, configured registry, and packages available when the commands are run. npm packages can execute JavaScript through command-line entry points and installation lifecycle scripts. Consequently, a compromised upstream release, malicious registry configuration, dependency-confusion condition, or unexpected package resolution could result in arbitrary local code execution. ### Attack Path 1. An attacker compromises a referenced package, one of its transitive dependencies, or the package registry used by the environment. Alternatively, the attacker influences npm configuration or package resolution. 2. A user or agent follows the Skill instructions in an environment without a trusted, lockfile-controlled local executable. 3. `npx` resolves and downloads the mutable or otherwise unverified package. 4. npm runs package lifecycle scripts or the package's comman ...[truncated 1183 chars]
Remediation
## Remediation Suggestions 1. Replace mutable tags such as `@latest` with explicitly reviewed versions, for example `create-next-app@<exact-version>`. 2. Declare all required tools in `package.json`, commit the generated lockfile, and perform deterministic installation with `npm ci`. 3. Invoke only locally installed executables. Use package scripts or `npx --no-install` so execution fails rather than downloading an unexpected package. 4. Configure npm to use an approved registry and validate the registry configuration before installation. 5. Review lockfile changes and verify package provenance and integrity before upgrading dependencies. 6. Disable unnecessary npm lifecycle scripts where operationally feasible, or perform installation in a restricted sandbox before allowing scripts. 7. Run installation and build commands in an isolated, least-privileged environment without unrelated credentials or access to sensitive host files. 8. Document the exact approved Playwright, TypeScript, and `create-next-app` versions instead of relying on ambient project state or mutable registry resolution.
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Missing User Warnings

High
Confidence
98% confidence
Finding
The skill immediately provides operational cloning instructions—screenshots, asset downloads, text transcription, and component extraction—before presenting any meaningful warning or authorization check. That sequencing normalizes copying third-party content and materially lowers the barrier to misuse for copyright infringement, brand impersonation, or phishing-style website replication.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger description is broad enough to activate on routine requests to copy, rebuild, or recreate websites, including third-party targets. In this skill's context, broad invocation is especially dangerous because the workflow then instructs downloading assets, transcribing text verbatim, and reverse engineering site structure, which can facilitate unauthorized copying or deceptive replicas.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The skill instructs users to run `npx playwright install chromium` without pinning a specific package version, which can fetch whatever version is current at execution time. This creates a supply-chain and reproducibility risk: a compromised or breaking upstream release could execute in the user's environment or alter the skill's behavior unexpectedly.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The instruction to initialize a project with `npx create-next-app@latest` uses a floating tag that resolves to whatever the latest release is at runtime. That exposes users to unreviewed upstream changes and potential supply-chain compromise, while also making the workflow non-reproducible.

Rp1

Medium
Category
MCP Rug Pull
Confidence
85% confidence
Finding
`npx tsc --noEmit` may resolve and execute a transient TypeScript package if `tsc` is not already present in the local project, creating a smaller but still real supply-chain risk. In context this is less dangerous than the bootstrap commands because it is a common local verification step, but it still relies on unpinned package resolution.

Static analysis

No suspicious patterns detected.