chart-image
Verdict safe, but 2 findings (2 medium), mainly resource abuse, data exfiltration. Most recent scan 2026-02-05.
The chart-image skill is a relatively safe data visualization tool with LOW to MEDIUM severity issues. No critical security threats were detected - there is no data exfiltration, no prompt injection attempts, no credential theft, and no command injection vulnerabilities. The primary concerns are: (1) missing package.json for dependency verification and version pinning (MEDIUM severity supply chain risk), (2) a referenced but missing data.py file (MEDIUM severity incomplete package), and (3) several LOW severity metadata/documentation issues (missing license, compatibility, allowed-tools declarations, and hardcoded paths). The skill's core functionality - generating chart images using Node.js libraries - appears legitimate and matches its description. The emphasis on being deployment-friendly (no native compilation, no browser dependencies) is a positive security characteristic as it reduces attack surface. However, without access to the actual package.json and chart.mjs script files, a complete security assessment of the dependencies and implementation cannot be performed.
Scanner's overall assessment (LLM analyzer)
Second scanner: NVIDIA SkillSpector
Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.
What this skill does
Generate publication-quality chart images from data. Supports line, bar, area, point, candlestick, pie/donut, heatmap, multi-series, and stacked charts. Use when visualizing data, creating graphs, plotting time series, or generating chart images for reports/alerts. Designed for Fly.io/VPS deployments - no native compilation, no Puppeteer, no browser required. Pure Node.js with prebuilt binaries.
- Package
- 5 files, 91 KB
- SKILL.md
- 1020 words, 12+ sections
- Code
- JavaScript (1)
- Version
- 1.1.0
SKILL.md covers: Chart Image Generator · Why This Skill? · Setup (one-time) · Quick Usage · Chart Types · Line Chart (default) · Bar Chart · Area Chart · Pie / Donut Chart · Pie · Donut (with hole) · Candlestick Chart (OHLC)
Findings
MEDIUM External Dependency Installation Without Version Pinning Resource Abusellm
The skill instructions require running 'npm install' in the scripts directory without specifying exact package versions or providing a package.json file for review. This creates supply chain risks as dependencies could be updated to malicious versions between installations. The skill claims to use Sharp and Vega-Lite but no package.json was provided for verification.
SKILL.md
```bash
cd /data/clawd/skills/chart-image/scripts && npm install
```MEDIUM Referenced File Not Found - Potential Missing Dependency Data Exfiltrationllm
The instructions reference a file 'data.py' that was not found in the skill package. This could indicate: (1) incomplete package distribution, (2) external dependency not included, or (3) documentation error. Missing dependencies can cause skill failures or unexpected behavior.
SKILL.md
Files referenced in instructions: data.py
**Referenced File: data.py** (not found)What is in the package
| File | Kind | Size |
|---|---|---|
CAPABILITY.md | doc | 2.5 KB |
SKILL.md | doc | 7.8 KB |
scripts/chart.mjs | script | 29 KB |
scripts/package-lock.json | config | 51 KB |
scripts/package.json | config | 155 B |
External hosts referenced
registry.npmjs.org opencollective.com vega.github.io github.com
Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.
Package contents recorded 2026-10-22. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.
What we checked
- Static analyzer. Pattern rules over SKILL.md and bundled files: known-bad commands, exfiltration URLs, secrets, obfuscation.
- Behavioral analyzer. Checks what the skill asks the agent to do against what its description claims it does.
- Llm analyzer. A language model reads the skill and reports intent-level issues the rules cannot express.
- Trigger analyzer. Looks for instructions that fire on conditions the user did not ask for.
- Meta analyzer. A second model pass that validates, deduplicates and re-scores the other analyzers' findings.
What we did not check
- Runtime behaviour. The skill was not executed; findings come from reading its files.
- Anything fetched at install or run time, including remote scripts, package dependencies, and URLs the skill tells the agent to open.
- Content the analyzers cannot read: images, binaries, and some non-English text.
- Known scanner bypass classes. See the methodology and limitations page.
Sources
- Repository: https://clawhub.ai/skills/chart-image
- Raw scan result: chart-image-generator-scan.json
- Badge for your README:
 - Request a re-scan