T09 · Insecure Skill Coding Practices
- Location
90sanimeartgenerator.js:11- Finding
API Token Exposed Through Command-Line Arguments
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a coherent image-generation skill, but users should understand that prompts and an API token are sent to Neta's external service and the documented token handling is not ideal.
Install only from a source you trust, prefer a pinned or verified release if available, and avoid putting long-lived API tokens directly in shell commands. Treat prompts and reference UUIDs as data sent to Neta/TalesOfAI, so do not include sensitive or confidential content unless you are comfortable sharing it with that service.
90sanimeartgenerator.js:11API Token Exposed Through Command-Line Arguments
SKILL.md:32Unpinned Third-Party Installer and Mutable Skill Reference
The script requires an API token via the command line and then sends it in an HTTP header to a third-party service. Command-line secrets are commonly exposed through shell history, process listings, audit logs, or CI job logs, so this creates unnecessary credential disclosure risk even though TLS is used for transport.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
};
}
const res = await fetch('https://api.talesofai.com/v3/make_image', {
method: 'POST',
headers: HEADERS,
body: JSON.stringify(body),
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
};
}
const res = await fetch('https://api.talesofai.com/v3/make_image', {
method: 'POST',
headers: HEADERS,
body: JSON.stringify(body),
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
};
}
const res = await fetch('https://api.talesofai.com/v3/make_image', {
method: 'POST',
headers: HEADERS,
body: JSON.stringify(body),
The README instructs users to run npx skills add ... without pinning an exact package version. This can cause users to fetch and execute whatever version is currently published at install time, creating a supply-chain risk if the package is later compromised, typosquatted, or maliciously updated. In this skill context, the risk is somewhat elevated because the command is presented as a normal installation path that users may copy-paste directly.
The skill declares only tools: Bash and omits any explicit tool scope or permission boundary even though its documented purpose requires outbound network access to an external API. Without clear restrictions, an agent may execute shell commands with broader-than-necessary capabilities, increasing the risk of unintended network access or misuse beyond image generation.
The documentation asks users to pass an API token and prompt to a command that sends data to an external image-generation service, but it does not clearly warn about that external transmission. This can lead users to disclose sensitive prompts or secrets without informed consent, especially in agent environments where prompts may contain personal or proprietary data.
Using npx skills add omactiengartelle/90s-anime-art-generator without a pinned version makes installation non-reproducible and exposes users to supply-chain risk if the upstream package changes or is compromised later. An attacker controlling or compromising the referenced package/version stream could deliver malicious code to future installers.
The phrase "Use when someone asks to generate or create 90s anime art generator images" does not clearly define exact trigger phrases, exclusions, or boundaries for when this skill should activate. While domain-specific, the wording is grammatically unclear and lacks negative examples, which can lead to inconsistent or unintended invocation decisions in manifest/markdown guidance.
No suspicious patterns detected.