T09 · Insecure Skill Coding Practices
- Location
y2kaestheticgenerator.js:31- Finding
API Token Exposed Through Command-Line Arguments
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill does what it claims, but it asks users to put an API token directly on the command line and recommends an unpinned npx install path.
Review before installing. Use a safer token handling method if possible, avoid putting real tokens directly in shell commands, rotate the token if it was exposed in history or logs, and prefer a pinned or trusted installer path rather than the unversioned npx command.
y2kaestheticgenerator.js:31API Token Exposed Through Command-Line Arguments
SKILL.md:32Unpinned Package Execution in Installation Instructions
The README instructs users to install and execute the skill via npx skills add omactiengartelle/y2k-aesthetic-generator without pinning a specific version. This creates a supply-chain risk because users may fetch whatever package or artifact is current at install time, including a later compromised or malicious update. In this context, the issue is moderately dangerous because the document is explicitly telling end users how to retrieve and run code from a moving target.
The skill advertises only the Bash tool and does not declare an explicit tool scope or permissions boundary, while its documented usage clearly depends on outbound network access to the Neta API. That mismatch weakens least-privilege controls and can allow broader-than-expected runtime capabilities, making review and enforcement harder if the skill or its dependencies are modified.
Using npx skills add omactiengartelle/y2k-aesthetic-generator without pinning a specific version makes installation non-reproducible and exposes users to supply-chain risk if the package, tag, or upstream installer behavior changes. An attacker who compromises the referenced package or publishes a malicious update could cause arbitrary code execution during install or later use.
The script requires the API token to be passed via the --token command-line argument and even documents that usage in the help text. Command-line arguments are commonly exposed via shell history, process listings, job control tools, CI logs, and crash reports, so this can leak the credential to other local users or logging systems.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
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,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
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,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
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,
The 'When to use' section says to use the skill when someone asks to 'generate or create y2k aesthetic photo generator images,' which is imprecise and does not clearly define what requests should or should not activate the skill. It provides no negative examples or constraints, so the trigger scope is underspecified for a markdown skill description.
No suspicious patterns detected.