T08 · Insecure Dependencies
- Location
SKILL.md:32- Finding
Unpinned Package Execution Through npx
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill appears to be a straightforward image generator that sends prompts and a user-supplied Neta token to its documented external API, with install and token-handling cautions but no hidden or destructive behavior.
Install only if you are comfortable sending your image prompts, optional reference UUIDs, and Neta API token to api.talesofai.com. Prefer the ClawHub install route or a pinned installer when available, avoid putting long-lived tokens directly in shell history, and do not submit confidential prompts or image references unless you accept the third-party service's handling of that data.
SKILL.md:32Unpinned Package Execution Through npx
3danimepostergenerator.js:3API Token Exposed Through Command-Line Arguments
The hardcoded remote host indicates this skill is designed to communicate with an external image-generation service, which creates a trust boundary crossing. In this context that is expected functionality, but it still constitutes a genuine security/privacy concern because all generated content requests and associated metadata are sent off-box to a non-local service.
console.error(`Creating 3D anime poster (${size} ${chosen.width}x${chosen.height})...`);
console.error(`Prompt: ${prompt}`);
const res = await fetch("https://api.talesofai.com/v3/make_image", {
method: "POST",
headers: HEADERS,
body: JSON.stringify(body),
The hardcoded remote host indicates this skill is designed to communicate with an external image-generation service, which creates a trust boundary crossing. In this context that is expected functionality, but it still constitutes a genuine security/privacy concern because all generated content requests and associated metadata are sent off-box to a non-local service.
console.error(`Creating 3D anime poster (${size} ${chosen.width}x${chosen.height})...`);
console.error(`Prompt: ${prompt}`);
const res = await fetch("https://api.talesofai.com/v3/make_image", {
method: "POST",
headers: HEADERS,
body: JSON.stringify(body),
The polling request repeatedly transmits the authentication header to the same external service to retrieve job status. While lower risk than the initial upload, it still extends exposure of the token to a third-party service and increases external dependency and metadata leakage about user activity.
await new Promise((r) => setTimeout(r, 2000));
const pollRes = await fetch(
`https://api.talesofai.com/v1/artifact/task/${taskUuid}`,
{ headers: HEADERS }
);
The README says the skill is powered by an external image-generation API and supports prompts plus reference-image UUIDs, but it does not clearly warn that user prompts and reference identifiers are transmitted to a third-party service. This can lead users to disclose sensitive text or image-linked data under the false assumption processing is local, creating privacy and data-handling risk.
The README instructs users to run npx skills add ... without pinning a specific version, which can cause execution of whatever package version is current at install time. If the upstream package or dependency chain is compromised, users may fetch and run unexpected code, and README-driven install commands are commonly copied verbatim.
The skill uses a Bash tool and instructs users to run a Node-based generator that relies on an external Neta API token, which implies outbound network access, but the manifest does not declare any tool scope restrictions such as permissions or allowed-tools. This weakens least-privilege controls and can allow broader-than-expected execution/network behavior if the skill or its backing script is modified or abused.
The install instruction uses npx skills add omactiengartelle/3d-anime-poster-generator without pinning a specific version. This creates a supply-chain risk because future package changes, dependency compromise, or account takeover could cause users to install unexpected or malicious code under the same name.
No suspicious patterns detected.