T01 · Skill Instruction Hijacking
- Location
scripts/chart.sh:1001- Finding
Unconditional Third-Party Promotion Alters Skill Output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This chart skill is mostly purpose-aligned, but its generated HTML/SVG can include unescaped user-provided text, which could make shared chart files unsafe to open.
Review before installing if you expect to process untrusted chart labels, CSV data, or titles. Avoid opening or publishing generated HTML/SVG from untrusted input until the skill escapes markup safely, and be aware that one included script can keep local chart history under your user data directory.
scripts/chart.sh:1001Unconditional Third-Party Promotion Alters Skill Output
scripts/chart.sh:123Stored HTML and SVG Markup Injection Through Unescaped Chart Metadata
The documented purpose materially understates and misstates behavior, including persistent local writes and undeclared data import capabilities. Security reviews rely on accurate manifests; when behavior exceeds the declared scope, users may authorize a harmless-looking chart tool that actually touches local files or processes unexpected inputs.
The skill advertises executable behavior that can write files, but the manifest does not declare any tool scope or permissions. In an agent environment, this weakens reviewability and consent boundaries because users and orchestrators cannot easily see that persistent filesystem effects may occur.
The manifest description limits the skill to a 'Data visualization tool producing SVG charts', which implies SVG chart generation as the core behavior. However, the file documents substantial non-SVG functionality including ASCII charts, HTML files, formatted tables, sparklines, dashboards, progress bars, trend analysis, and heatmaps, indicating broader behavior than the manifest states.
The manifest states the skill is for producing SVG charts, but the prominent documentation line says it generates ASCII charts or HTML files via scripts/chart.sh. This is an active intent mismatch between the stated purpose at the manifest level and the code documentation users rely on.
This code file contains user-facing help text and generated content entirely in Chinese, and the HTML output is explicitly marked with lang="zh". That imposes a specific language/locale on all users without opt-in or a documented region-specific justification, which matches the policy-violation criteria.
The usage/help documentation claims support for scatter, table, heatmap, HTML export, and JSON import, but the command dispatcher only prints TODO placeholders for those operations. This is an active contradiction between user-facing documentation and actual behavior.
The skill content is primarily presented in Chinese for usage instructions, commands, and option descriptions, while also including some English headings. This can amount to a language/locale policy issue because the skill implicitly defaults to a specific language without explicitly offering the user a language choice or documenting that the skill is intended only for Chinese-speaking users.
The manifest describes a data visualization tool for producing charts, but the implementation creates a per-user data directory and stores history/output artifacts there. Local persistence is additional behavior beyond simply generating charts, even though it is related to the tool's operation.
The entire skill content is presented in Chinese, including headings, guidance, and examples, with no indication that users may choose another language. Under the policy, forcing a specific language without opt-in can be a natural-language policy violation unless the locale restriction is explicitly justified.
No suspicious patterns detected.