T08 · Insecure Dependencies
- Location
SKILL.md:4- Finding
Unpinned Third-Party Package Installed Globally
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This quote skill is mostly related to its stated purpose, but it installs an unpinned global npm package and its API image mode renders untrusted remote SVG content in a local browser.
Review this before installing. The skill should pin its npm package version, document its actual CLI options, and avoid rendering remote SVG as active browser HTML. Prefer offline text mode, or run API image conversion only in an isolated environment with no secrets or sensitive local/network access.
SKILL.md:4Unpinned Third-Party Package Installed Globally
scripts/office-quotes.js:91Untrusted Remote SVG Rendered as Active Local HTML
The declared behavior and the reported actual implementation diverge substantially: the skill claims offline quotes, API-backed metadata, and avatars, but may instead operate on local SVG files and generate PNGs. While this may stem from poor packaging or documentation rather than overt malice, the discrepancy undermines trust and can conceal undeclared local file access patterns in a context that should be low risk.
The declared behavior and the reported actual implementation diverge substantially: the skill claims offline quotes, API-backed metadata, and avatars, but may instead operate on local SVG files and generate PNGs. While this may stem from poor packaging or documentation rather than overt malice, the discrepancy undermines trust and can conceal undeclared local file access patterns in a context that should be low risk.
The declared behavior and the reported actual implementation diverge substantially: the skill claims offline quotes, API-backed metadata, and avatars, but may instead operate on local SVG files and generate PNGs. While this may stem from poor packaging or documentation rather than overt malice, the discrepancy undermines trust and can conceal undeclared local file access patterns in a context that should be low risk.
The skill metadata declares no explicit tool scope or permissions, yet the described/package-backed behavior includes network access and likely file access for rendering/output. In an agent environment, undeclared capabilities reduce transparency and can allow a seemingly harmless quote skill to perform actions users and orchestrators did not approve.
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.
In API mode, the script fetches remote SVG content from an external service, writes it to /tmp, and then renders it in a browser context via Playwright. Because SVG is active content and may reference external resources or browser-parsed constructs, this expands the trust boundary to unvalidated remote input; a compromised API or malicious response could trigger unintended network access, privacy leakage, or browser-engine exploitation during rendering. The skill context makes this more concerning because a fun quote generator would not normally justify quietly handling untrusted remote markup and local file rendering.
The header usage string documents --format png|jpg|webp, which implies SVG is not a supported output format. However, the implementation sets outputFormat = "svg" by default and explicitly handles svg as a valid format in both rendering and conversion paths.
Detected: suspicious.browser_file_render