Back to skill

Security audit

Texture Art Generator

Security checks for vulnerabilities and agentic risk

Overview

The skill appears to generate images as advertised, but it handles an API token and sends prompts to a third-party domain with incomplete disclosure and uses an unpinned installer command.

Review this before installing. Use only a low-privilege, revocable Neta/TalesOfAI token, avoid putting the token directly on the command line where it may be logged, and confirm you are comfortable sending prompts and the token to api.talesofai.com. Prefer a pinned or verified install method rather than the unpinned npx command.

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
textureartgenerator.js:10
Finding

API Token Exposed Through Command-Line Arguments

Content
View full analysis
"your prompt" --token YOUR_TOKEN ``` ### Technical Analysis The skill only accepts the Neta API token through the `--token` command-line option. Command-line arguments are not an appropriate secret-transport mechanism because they may be exposed through: - Shell history files. - Process inspection utilities while the process is running. - Process accounting or endpoint-monitoring systems. - CI/CD logs and command tracing. - Wrapper scripts or terminal-session recordings. The token is subsequently sent as the `x-token` header to the documented API. The direct API transmission uses HTTPS and is consistent with the skill's declared purpose; the vulnerability is the local handling of the token before that request. ### Attack Path 1. A victim follows the documented usage and runs the skill with `--token YOUR_TOKEN`. 2. The shell records the command in its history, or the operating system exposes the active process arguments. 3. A local user, monitoring agent, log collector, or another process with sufficient local visibility reads the command arguments. 4. The observer extracts the Neta API token. 5. The observer reuses the token against the Neta API until it is revoked or expires. ### Impact Assessment An attacker who obtains the token may impersonate the victim to the Neta API and consume the victim's image-generation quota or access capabilities associated with that token. The exposed credential does not, by itself, grant operating-syste ...[truncated 98 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:32
Finding

Unpinned Third-Party Package Execution in Installation Instructions

Content
View full analysis
Remediation
View remediation
...`. - Where supported, pin and verify package integrity using a lockfile, checksum, signature, or trusted artifact digest. - Prefer a preinstalled, organization-approved CLI rather than allowing `npx` to download and immediately execute mutable code. - Document the expected package publisher and verification procedure. - Keep the pinned version current through a controlled review and update process. - Advise users not to run installation commands with administrator or root privileges. - Update both `SKILL.md` and `README.md` so all installation examples use the same hardened procedure. ]]>
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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (10)

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The manifest and description say the skill uses Neta AI, but the code transmits user prompts and API tokens to api.talesofai.com instead. This mismatch is dangerous because it can misdirect sensitive user data and credentials to an undisclosed third party, which is especially risky in an agent skill where users rely on metadata to understand where their data goes.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding

The README instructs users to run npx skills add blammectrappora/texture-art-generator without pinning a version or immutable reference. This can cause users to fetch and execute whatever package version is current at install time, increasing supply-chain risk if the package is later compromised, replaced, or updated maliciously.

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 and instructs use of a tokenized API call, but does not define any explicit tool scope or permissions despite requiring network access. In an agent environment, missing scope boundaries can allow broader-than-necessary outbound access or ambiguous execution privileges, increasing the chance of unintended data exposure or misuse.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
87% confidence
Finding

Using npx skills add blammectrappora/texture-art-generator without a pinned version makes installation depend on whatever package version is current at execution time. This creates a supply-chain risk: a compromised upstream release or unexpected update could introduce malicious code or altered behavior into users' environments.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The file header claims the skill uses the Neta AI API, but the implementation actually sends requests to TalesOfAI endpoints. This is a supply-chain transparency issue because users may provide prompts and tokens under false assumptions about the receiving service, undermining informed consent and trust boundaries.

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

js
async function main() {
  // Submit job
  const submitRes = await fetch('https://api.talesofai.com/v3/make_image', {
    method: 'POST',
    headers: 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 · textureartgenerator.js (reported line 71)May include surrounding context.

js
async function main() {
  // Submit job
  const submitRes = await fetch('https://api.talesofai.com/v3/make_image', {
    method: 'POST',
    headers: 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 · textureartgenerator.js (reported line 98)May include surrounding context.

js
async function main() {
  // Submit job
  const submitRes = 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
94% confidence
Finding

The skill sends the user prompt and authentication token to a remote service without any explicit disclosure in the runtime flow about what data is being transmitted or to which domain. In this file, that concern is amplified by the provider mismatch, making the undisclosed transmission more likely to violate user expectations and leak potentially sensitive prompts or credentials.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The 'When to use' guidance says to use the skill when someone asks to 'generate or create satisfying texture art generator images,' which is not a precise trigger list and does not define exclusions or scope boundaries. In a markdown skill description, this kind of broad natural-language activation guidance can overlap with general image-generation requests and increase the chance of unintended invocation.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.