Back to skill

Security audit

Buy Domain Helper

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its stated Cloudflare publishing purpose, but it needs Review because it requests an unrelated credential and has unsafe execution paths around deployment, package fetching, and system installation.

Review carefully before installing. Remove the unrelated NETA_TOKEN requirement, avoid pasting Cloudflare tokens into command lines, expose only directories you intend to make public, and require explicit confirmation before deployment or DNS changes. Prefer pinned or bundled tooling and fix the deploy command injection before using this with real Cloudflare credentials.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (4)

T09 · Insecure Skill Coding Practices

Error
Location
site.js:103
Finding

Shell Command Injection Through Deployment Arguments

Content
View full analysis
&1`, { env } ).toString(); ``` ### Technical Analysis The positional arguments `dir` and `projectName` originate from command-line input and are interpolated directly into a command string passed to `execSync`. Because `execSync` executes string commands through a shell, enclosing these values in double quotes does not neutralize shell constructs such as command substitution. Embedded quotes can also terminate the intended argument and introduce additional commands. For example, a directory argument containing `$(touch /tmp/pwned)` would be evaluated by the shell even though it appears inside double quotes. The spawned shell also receives an environment containing the Cloudflare API token and account ID, increasing the consequences of successful command execution. ### Attack Path 1. An attacker persuades the Agent or user to deploy using an attacker-controlled directory or project-name argument. 2. The attacker includes shell syntax in the argument, such as command substitution or a quote-escape sequence. 3. `parseFlags` accepts the value without validation. 4. The value is interpolated into the command string. 5. `execSync` invokes a shell, which evaluates the injected syntax. 6. The attacker's command executes with the privileges and environment of the Skill process. ### Impact Assessment Successful exploitation permits arbitrary local command execution with the Agent's operating-system privileges. The injected process can read or modify files available to the Agent, invoke network tools, alter deployments, and access environment variables inherited ...[truncated 203 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
site.js:81
Finding

Unpinned Remote Package Download and Execution

Content
View full analysis
`. 2. The system reaches the static-directory branch. 3. `npx -y serve` resolves the package using the active npm registry configuration. 4. If the package is unavailable locally, `npx` downloads the currently resolved package version without confirmation. 5. Package installation or runtime code executes with the privileges of the Skill process. 6. A compromised or maliciously resolved package can access local files, inherited environment variables, and network resources. ### Impact Assessment A compromised dependency could execute arbitrary code under the current user account. The accessible scope includes files readable or writable by the Agent, available environment credentials, and network services reachable from the host. The issue also makes builds and audits non-reproducible because the executed package version is not fixed. ]]>
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
package.json:6
Finding

Unrelated Neta API Token Required Beyond Declared Functionality

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
site.js:40
Finding

Cloudflare API Tokens Accepted and Documented as Command-Line Arguments

Content
View full analysis
--account ``` ```bash node site.js zone mysite.com --token node site.js pages-domain my-site mysite.com --token --account node site.js dns-link my-site --token ``` ### Technical Analysis The implementation accepts Cloudflare API tokens through `--token`, and the documentation repeatedly recommends this method. Command-line arguments may be recorded in interactive shell history, automation logs, terminal transcripts, Agent tool logs, and process metadata. Depending on the operating system and process isolation configuration, other local users or monitoring tools may also be able to inspect active process arguments. The affected tokens are security-sensitive: the Pages token can modify deployments, while the DNS token is explicitly intended to have DNS edit permission for a zone. ### Attack Path 1. A user follows the documented command and supplies a Cloudflare token through `--token`. 2. The complete command is stored in shell history or captured by Agent, CI, terminal, or process-monitoring logs. 3. Alternatively, a local observer inspects process arguments while the command is running. 4. An unauthorized party extracts the token. 5. The party authenticates to Cloudflare and performs operations allowed by the token's scope. ### Impact Assessment Exposure of a Pages-edit token can permit unauthorized projec ...[truncated 354 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (9)

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · README.md (reported line 1)May include surrounding context.

md
<!--skill-metadata
name: buy-domain-helper
description: |
  3-layer site launcher for any HTML. Tunnel instantly, deploy permanently to Cloudflare Pages, then buy a domain and link it via DNS.

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.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill advertises capabilities that involve environment access and networked operations, but it does not declare any explicit tool scope such as permissions or allowed-tools. That mismatch can cause the skill to be invoked without clear guardrails, increasing the chance of unintended external actions like deployments, DNS changes, or token use under overly broad agent defaults.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill uses broad activation language like helping when a user wants to 'share a local page, host a site, or get a custom domain live,' which can match many ordinary requests. In an agent environment, that raises the risk of over-triggering a skill that performs network publishing, deployment, or DNS-related actions when the user did not explicitly request those sensitive operations.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · site.js (reported line 26)May include surrounding context.

js
import { execSync, spawn } from 'node:child_process';

const BASE = 'https://api.cloudflare.com/client/v4';

function parseFlags(args) {
  const flags = { _: [] };

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Tunnel mode silently escalates from using an expected dependency to installing software via brew install cloudflared if it is missing. Auto-installing and executing external software is an unnecessary and risky capability for this helper because it changes the host system and trusts external package sources during normal operation.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding

The script runs npx -y serve without pinning a specific version, so each execution may fetch and execute whatever package version is current on the registry at runtime. In a skill that is supposed to launch and host sites, this creates a supply-chain execution path where a compromised package, typo-squat, or malicious update can lead to arbitrary code execution on the user's machine.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

When given a directory, the tool launches npx to download and run serve dynamically, then exposes that content through a public tunnel. This combines unpinned remote code execution with external exposure of local content, making the skill context more dangerous because the feature is explicitly designed to publish data from the local machine.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

The inline setup documentation says Layer 1 needs no setup because cloudflared installs automatically via Homebrew if missing. However, the manifest's requires.bins list explicitly declares cloudflared as required, indicating the skill expects it to already exist rather than auto-installing it. This is a direct documentation-versus-declared-behavior contradiction.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.dangerous_exec, suspicious.env_credential_access, suspicious.secret_argv_exposure

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
site.js:67

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
site.js:43

Instructions pass high-value credentials through process argv.

Critical
Code
suspicious.secret_argv_exposure
Location
README.md:87