Back to skill

Security audit

Ghost Portrait Generator

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward ghost-image generator that sends prompts and a user-provided Neta token to the documented image API, with some install and token-handling cautions.

Before installing, use a token you can revoke, avoid putting sensitive personal or proprietary details in prompts, and prefer a pinned or ClawHub-mediated install path. Treat the documented --token examples cautiously because command-line tokens may be visible in shell history or process logs.

Vulnerability Patterns
  • 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
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
ghostportraitgenerator.js:26
Finding

API Token Exposed Through Command-Line Arguments

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:32
Finding

Unpinned Package Execution in Installation Instructions

Content
View full analysis
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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (8)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README describes sending user prompts and optional reference image UUIDs to an external image-generation service but does not clearly warn users that their inputs are transmitted off-platform. In this skill's context, prompts may contain personal, sensitive, or proprietary descriptions, and reference identifiers may link to user assets, so the omission can lead to unintended data disclosure and privacy/compliance issues.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

The README instructs users to install/run the skill via npx skills without pinning a specific version, which can cause users to fetch and execute whatever package version is current at the time of install. That creates a supply-chain risk: a compromised publisher account, malicious update, or typo/squatted dependency in the execution chain could result in arbitrary code execution on the user's machine.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill declares only a Bash tool and omits any explicit tool scope or network permission boundaries, yet its documented purpose requires calling an external API tokenized by the user. That mismatch can lead to broader-than-expected outbound network use and makes review harder because the skill's effective capabilities are not clearly constrained or disclosed.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The activation guidance is very broad—'when someone asks to generate or create ghost portrait ai generator images'—without constraints on input handling, safety boundaries, or user confirmation. Broad triggers can cause over-activation, increasing the chance the skill runs in contexts where external API calls, token use, or prompt forwarding happen unnecessarily.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

The install instruction uses npx skills add blammectrappora/ghost-portrait-generator without a pinned version, so users may fetch whatever package or remote content is current at install time. This creates a supply-chain risk where a later compromised or malicious update could be silently installed and executed.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% 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 · ghostportraitgenerator.js (reported line 80)May include surrounding context.

js
body.inherit_params = { collection_uuid: ref, picture_uuid: ref };
  }

  const submitRes = await fetch('https://api.talesofai.com/v3/make_image', {
    method: 'POST',
    headers,
    body: JSON.stringify(body),

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 · ghostportraitgenerator.js (reported line 80)May include surrounding context.

js
body.inherit_params = { collection_uuid: ref, picture_uuid: ref };
  }

  const submitRes = await fetch('https://api.talesofai.com/v3/make_image', {
    method: 'POST',
    headers,
    body: JSON.stringify(body),

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 · ghostportraitgenerator.js (reported line 108)May include surrounding context.

js
body.inherit_params = { collection_uuid: ref, picture_uuid: ref };
  }

  const submitRes = await fetch('https://api.talesofai.com/v3/make_image', {
    method: 'POST',
    headers,
    body: JSON.stringify(body),

Static analysis

No suspicious patterns detected.