Back to skill

Security audit

Frontman — Visual Frontend Editing

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Frontman setup guide whose source-editing and dev-server behavior is disclosed, with supply-chain cautions around unpinned install commands.

Install only in a development project you are willing to modify. Use version control, review dependency and source diffs after setup and each edit, prefer pinned package versions when available, and avoid running the installer in CI or environments containing production secrets.

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:37
Finding
Unpinned Third-Party Packages Executed Through Package Runners<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 37–52 **Vulnerability Type**: Unpinned and immediately executed third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```markdown ### Detect the user's framework and install Frontman: **Next.js:** ```bash npx @frontman-ai/nextjs install ``` **Astro:** ```bash npx astro add @frontman-ai/astro ``` **Vite (React, Vue, Svelte):** ```bash npx @frontman-ai/vite install ``` ``` ### Technical Analysis The setup instructions invoke packages without pinning reviewed versions or verifying package integrity. In particular, `npx` can download and immediately execute the package version currently resolved by the registry. The `astro add` command can likewise install an integration and execute its setup logic. Because the package references are mutable, the code executed when a user follows these instructions may differ from the code available when the skill was audited. This creates a software supply-chain risk if a publisher account, package, registry response, or transitive dependency is compromised. The commands are consistent with the skill's stated installation purpose, and there is no evidence in the audited file that the referenced packages are currently malicious. The vulnerability is the absence of dependency pinning and verification before execution. ### Attack Path 1. An attacker compromises a referenced package, its publisher account, or a dependency in its supply chain. 2. The attacker publishes a malicious release that is selected by the unpinned package reference. 3. A user or agent follows the instructions in `SKILL.md`. 4. The package runner retrieves the mutable package release from the configured registry. 5. Installation or initialization code executes with the permissions of the user running the command. 6. The malicious code can access or alter resources available to that user before the compromise is detected. ### Impact Assessment Successful exploitatio ...[truncated 600 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin every executable package to a specifically reviewed version, for example: ```bash npx --yes @frontman-ai/nextjs@<reviewed-version> install npx --yes astro@<reviewed-version> add @frontman-ai/astro@<reviewed-version> npx --yes @frontman-ai/vite@<reviewed-version> install ``` 2. Record resolved dependencies in a committed lockfile and require immutable or frozen-lockfile installation in automated environments. 3. Verify package provenance, publisher identity, registry source, and integrity metadata before execution. 4. Review installation scripts and release changes before updating pinned versions. 5. Run installation with least privilege in an isolated development environment without production credentials. 6. Configure trusted registries explicitly and apply dependency monitoring for compromised, deprecated, or unexpectedly transferred packages. 7. Require users to review generated configuration and source changes before committing or deploying them. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Vague Triggers

Medium
Confidence
89% confidence
Finding
The trigger phrases are broad and overlap with ordinary frontend assistance requests, increasing the chance that the skill activates when the user did not explicitly intend to grant browser and shell-assisted editing behavior. Because this skill can lead to package installation and source-file modification, accidental activation raises the risk of unintended code changes and execution paths.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The skill prominently advertises that it edits actual source files but does not pair that with a clear warning that local code will be modified and should be reviewed before acceptance. In the context of an AI-driven editing workflow, omission of this warning can cause users to authorize impactful changes without understanding that persistent project files—not temporary overlays—are being changed.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The setup and usage sections tell users to run installer commands and use a browser-driven editing loop that changes config and source files, but they do not clearly disclose that these operations will modify the local project. In a development environment, that omission is risky because users may unknowingly permit persistent changes to dependencies, framework config, and application code.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The skill instructs users to run an unpinned `npx` package, which fetches and executes whatever version is current at invocation time. That creates a supply-chain risk: a compromised upstream release, typo-squatting, or unexpected breaking change could execute arbitrary code on the developer machine during setup.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding
Using `npx astro add @frontman-ai/astro` without pinning versions allows transient resolution of the latest `astro` CLI and package versions at runtime. If either dependency chain is compromised or a malicious release is published, arbitrary install-time scripts or unsafe project modifications could run on the user's system.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The unpinned `npx @frontman-ai/vite install` command executes a remote package at its latest published version, which is a classic supply-chain exposure. In a developer environment with local source access, a malicious or compromised release could alter project files, exfiltrate secrets, or run arbitrary code.

Static analysis

No suspicious patterns detected.