T08 ยท Insecure Dependencies
- Location
SKILL.md:26- Finding
Execution of an Unpinned Third-Party npm Package
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mainly an icon-management helper, but it needs review because it installs mutable third-party code globally and documents commands that can persistently overwrite AI assistant rule files.
Review the npm package source or pin an exact trusted version before installing, avoid global or unpinned `npx` execution in sensitive projects, and do not run `unicon skill --all` or `--force` unless you have reviewed the files it will write and have backups. Treat API-returned SVG as untrusted markup and sanitize it before rendering in an application.
SKILL.md:26Execution of an Unpinned Third-Party npm Package
references/api-reference.md:223Unsanitized Remote SVG Content Rendered Through dangerouslySetInnerHTML
The example injects icon.content directly into the DOM via dangerouslySetInnerHTML, which is a classic unsafe sink. Because content is documented as raw SVG inner content received from an external API, any malicious or unexpected markup in that field could lead to XSS, DOM injection, or abuse of SVG features in downstream applications.
return (
<svg
viewBox={icon.viewBox}
dangerouslySetInnerHTML={{ __html: icon.content }}
fill={icon.defaultFill ? "currentColor" : "none"}
stroke={icon.defaultStroke ? "currentColor" : "none"}
strokeWidth={icon.strokeWidth ?? 2}
The documented ability to overwrite existing IDE skill files is a form of self-modification of agent-governing artifacts. In the skill context this is especially dangerous because changing .claude, .cursor, .codex, or similar rule files can persistently influence assistant behavior, potentially enabling prompt injection persistence or weakening future security controls.
| `-l, --list` | List supported assistants |
| `--ide <name>` | Install for specific IDE |
| `--all` | Install for all supported IDEs |
| `-f, --force` | Overwrite existing files |
**Supported IDEs:**
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
| IDE | Directory |
|-----|-----------|
| Claude Code | `.claude/skills/unicon/SKILL.md` |
| Cursor | `.cursor/rules/unicon.mdc` |
| Windsurf | `.windsurf/rules/unicon.md` |
| Agent | `.agent/rules/unicon.md` |
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# Search with AI
curl "https://unicon.sh/api/icons?q=dashboard"
# Filter by source
curl "https://unicon.sh/api/icons?q=arrow&source=lucide"
The API reference returns raw SVG inner content in the content field and later demonstrates rendering it with React's dangerouslySetInnerHTML without any warning or sanitization guidance. If icon data is ever compromised, user-supplied, proxied from third parties, or includes unsafe SVG constructs, consumers may introduce XSS or scriptable SVG injection into their apps.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
The unicon init --force examples describe overwriting an existing config file, but the documentation does not explicitly warn that existing .uniconrc.json content may be replaced. Markdown guidance for file-modifying or destructive operations should disclose the risk to user data or configuration.
The unicon skill command enables writing AI assistant rule/skill files into multiple IDE-specific directories, which is outside the core icon-search and icon-bundling purpose described for the tool. In a skill context, this is more dangerous because it modifies trusted prompt/configuration surfaces that can influence future agent behavior across developer tools.
The skill installation --force option can overwrite existing IDE skill/rule files in trusted locations without an explicit warning in the docs. In this context, overwriting agent instruction files is more sensitive than replacing ordinary generated assets because it can alter how coding assistants behave in future sessions.
The skill instructs users to install assistant integrations into local rule/skill directories, which modifies editor or agent configuration in the user's environment, but it does not clearly warn about that side effect. This can lead users to alter trusted automation or prompt-routing behavior without understanding the persistence and scope of the change.
This markdown file documents unicon cache --clear as clearing all cached icons, but it does not include any cautionary wording about deleting local cache contents. For markdown files, destructive behavior that affects local user data should be accompanied by a warning so users understand the impact before running the command.
No suspicious patterns detected.