Back to skill

Security audit

Thumbnail Gen Skill

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward remote AI thumbnail generator, with some token-handling and install-supply-chain cautions users should understand.

Before installing, verify that api.talesofai.com is the intended backend for your Neta token, avoid placing real tokens directly in command lines, and prefer a pinned or ClawHub-managed install path when available.

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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:31
Finding

Unpinned Third-Party Installer and Mutable Skill Source

Content
View full analysis
Remediation
View remediation
add SherriHidalgolt/thumbnail-gen-skill ``` 2. Pin the installed skill to an immutable commit hash or cryptographically verified release artifact. 3. Publish and verify integrity hashes or signed release attestations for installation artifacts. 4. Document the exact trusted npm package, repository, version, and commit expected by the project. 5. Prefer an installation mechanism that downloads a verified artifact without executing mutable package code. 6. Advise users not to run the installer with administrator or root privileges. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
thumbnailgen.js:9
Finding

API Token Exposed Through Command-Line Arguments

Content
View full analysis
). Pass it via the `--token` flag. ```bash node
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (11)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The documented purpose says the skill uses the Neta AI API, but the analyzed behavior indicates it actually calls a different external service (api.talesofai.com), supports reference-based image inheritance via --ref, and requires a token without clearly declaring those expectations. This mismatch is dangerous because it can mislead users into sending prompts, tokens, and possibly reference-image identifiers to an undisclosed third party, undermining informed consent, privacy, and trust boundaries.

Content

No source excerpt is available for this finding.

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.

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.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The README explicitly instructs users to pass the API token on the command line, which can expose secrets through shell history, process listings, terminal logging, and CI job logs. Because this is a credential for an external API service, leakage could allow unauthorized use of the account or quota consumption.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
87% confidence
Finding

The skill declares only tools: Bash and omits any explicit permissions or allowed-tools scope even though its described behavior requires outbound network access to an external image-generation API. This creates a transparency and policy gap: operators and users cannot accurately assess what the skill is allowed to do, which increases the chance of unintended external requests or token exposure during execution.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
82% confidence
Finding

The install instruction uses npx skills add SherriHidalgolt/thumbnail-gen-skill without pinning a specific version or immutable reference. This exposes users to supply-chain risk because future changes to the package or fetched installer behavior could introduce malicious code or altered functionality without any change to the documented command.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill metadata claims it uses the Neta AI image generation API, but the code actually sends prompts and the supplied token to TalesOfAI endpoints while also using inconsistent branding in headers. This is dangerous because users may provide secrets and content under false assumptions about the service receiving them, creating a supply-chain style trust violation and undisclosed data exfiltration risk.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

This line performs an outbound POST request to an external service containing user-supplied prompt data and authentication headers. External transmission is expected for an image-generation skill, but in this case it is security-relevant because the destination differs from the advertised provider, so the network egress materially contributes to undisclosed third-party data sharing.

Content

Scanner excerpt · thumbnailgen.js (reported line 70)May include surrounding context.

js
// --- Submit job ---
async function makeImage() {
  const res = await fetch("https://api.talesofai.com/v3/make_image", {
    method: "POST",
    headers: HEADERS,
    body: JSON.stringify(body),

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

This line performs an outbound POST request to an external service containing user-supplied prompt data and authentication headers. External transmission is expected for an image-generation skill, but in this case it is security-relevant because the destination differs from the advertised provider, so the network egress materially contributes to undisclosed third-party data sharing.

Content

Scanner excerpt · thumbnailgen.js (reported line 70)May include surrounding context.

js
// --- Submit job ---
async function makeImage() {
  const res = await fetch("https://api.talesofai.com/v3/make_image", {
    method: "POST",
    headers: HEADERS,
    body: JSON.stringify(body),

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The script transmits the user prompt and authentication token to a third-party remote API without any in-script warning, consent prompt, or clear disclosure at execution time. In a skill context, users may assume local processing or a different provider, so silent transmission of potentially sensitive prompt content and credentials increases privacy and secret-handling risk.

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

js
// --- Poll for result ---
async function pollTask(taskUuid) {
  const url = `https://api.talesofai.com/v1/artifact/task/${taskUuid}`;
  const MAX_ATTEMPTS = 90;
  const INTERVAL_MS = 2000;

Static analysis

No suspicious patterns detected.