Back to skill

Security audit

Podcast Cover Generator

Security checks for vulnerabilities and agentic risk

Overview

This podcast-cover skill appears purpose-aligned, but it handles an API token in an exposed way and has enough disclosure and supply-chain weaknesses that users should review it before installing.

Install only if you are comfortable sending prompts, optional reference image IDs, and your image-service token to api.talesofai.com. Prefer a pinned release or ClawHub-managed install, avoid putting real tokens directly in shell commands or CI logs, and rotate the token if it may have been exposed in command history or process telemetry.

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:34
Finding

Unpinned Third-Party Installation Command Creates Supply-Chain Exposure

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
podcastcovergenerator.js:19
Finding

API Token Exposed Through Command-Line Arguments

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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (11)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The documented purpose says the skill uses the Neta API for podcast cover generation, but the analyzed behavior reportedly uses a different service endpoint, supports broader image-generation modes, and includes undeclared reference-image features. This mismatch is dangerous because it prevents informed consent, can redirect user data or prompts to an unexpected third party, and may conceal materially different behavior than the user approved.

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
96% confidence
Finding

The README explicitly instructs users to pass the API token on the command line, which commonly exposes secrets via shell history, terminal logging, CI logs, and process listings visible to other local users. Because the document says the script reads the token only from --token, it steers users toward the less safe handling pattern with no warning or safer alternative.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill declares Bash tooling but does not constrain tool scope with explicit permissions or allowed-tools, even though the documented behavior requires outbound network access for API calls. This creates unnecessary ambiguity about what the skill may do at runtime and weakens containment, increasing the risk of unintended or abusive network actions if the implementation changes or is swapped.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The phrase "Use when someone asks to generate or create podcast cover art generator images" is ambiguous and not constrained to specific trigger wording or context. It does not provide clear boundaries or negative examples, so it could match a wide range of ordinary requests and lead to unintended skill invocation.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
83% confidence
Finding

The installation instruction uses npx skills add blammectrappora/podcast-cover-generator without pinning a specific version or immutable reference. That allows consumers to install whatever happens to be current at execution time, which can lead to supply-chain compromise if the package or referenced artifact is later modified maliciously.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill claims to use the Neta API but actually transmits user prompts and tokens to talesofai.com, which is a materially different endpoint than advertised. This mismatch undermines informed consent and can lead users to disclose API credentials or sensitive prompt content to an unexpected third party.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The manifest specifically advertises creation of 1400x1400 square podcast cover art for podcast directories. In code, the only square preset is 1024x1024, and there is no 1400x1400 option or resizing step, so the implemented behavior does not match the stated output capability.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

This code transmits user content and an API token to an external service. External transmission is expected for a cloud image generator, but here it is more concerning because the skill description emphasizes a different provider, so users may not realize which service receives their data and credentials.

Content

Scanner excerpt · podcastcovergenerator.js (reported line 66)May include surrounding context.

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

  const res = await fetch(`https://api.talesofai.com/v3/make_image`, {
    method: 'POST',
    headers: {
      'x-token': token,

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

js
async function pollTask(taskUuid, token) {
  const maxAttempts = 90;
  for (let i = 0; i < maxAttempts; i++) {
    const res = await fetch(`https://api.talesofai.com/v1/artifact/task/${taskUuid}`, {
      headers: {
        'x-token': token,
        'x-platform': 'nieta-app/web',

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The script sends user-supplied prompts and an optional reference identifier to a remote API without clearly warning that this data leaves the local environment. In an image-generation skill, prompts may contain confidential creative concepts or personal data, so the lack of notice creates a privacy and data-handling risk.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.